2014-03-14 39 views
-1

我不是很好的正則表達式,我試過多個表達式,但無法弄清楚。PHP的正則表達式得到具體的行

我有一個大的文本文件看起來像這樣:

user1:asdffdf:asdasd 
user2:asdafaf:adads 

我需要PHP的正則表達式可以匹配我想和返回行內容的用戶名。

例如,我想獲取「user2」的行內容,但正則表達式在搜索「adad」時不應匹配。

謝謝。

+1

您的示例文本並沒有真正讓你想匹配清楚什麼。 – Scuzzy

+0

用戶名前面的空格應該是空的,然後匹配用戶名和它後面的冒號。 所以,如果我需要找到user2的模式將是: 「user2:」 並返回整條線。 – John

+0

請問您可以編輯您的原始問題與例子應該匹配什麼不應該匹配? – Scuzzy

回答

1

我不認真瞭解什麼是不清楚。我有一個變量 $ username ='user2';我想獲得一個包含用戶2作爲 第一個單詞的第一個冒號前的行

$subject = 'user1:asdffdf:asdasd 
user2:asdafaf:adads 
user2:asdafaf:blah'; 
$username = 'user2'; 

if (preg_match_all('/^'.$username.':.*$/m',$subject,$matches,PREG_SET_ORDER)) { 
    print_r($matches); 
} 

//Array 
//(
// [0] => Array 
//  (
//   [0] => user2:asdafaf:adads 
//  ) 
// 
// [1] => Array 
//  (
//   [0] => user2:asdafaf:blah 
//  ) 
// 
//) 
+0

完美的謝謝。 – John

0
if(preg_match("/nothing in front/",$whereToSearchForMatches)){ 
     // do something 

} else { 
     // do something else 

} 
+0

你真的想要尋找「前面沒有東西」或前面的空間實際上是空的嗎? – 2014-03-14 02:42:09

+0

是的,我需要的模式不是功能。 – John