2014-03-14 2 views
-1

저는 정규 표현식에별로 좋지 않아 여러 표현식을 시도했지만 해결할 수 없습니다.PHP 정규식 특정 줄을 얻습니다

user1:asdffdf:asdasd 
user2:asdafaf:adads 

은 내가 얻을 라인의 내용을 반환 할 사용자 이름을 일치시킬 수 있습니다 PHP를위한 정규 표현식이 필요합니다

나는 큰 텍스트 파일과 같이 찾고 있습니다.

예를 들어, "user2"의 행 내용을 가져 오려고하지만 "adads"를 검색 할 때 정규 표현식이 일치하지 않아야합니다.

감사합니다.

+1

샘플 텍스트 정말 일치 싶은거야 분명히 무엇을하지 않는 첫 번째 콜론 전에 로 첫 번째 단어를 사용자 2를 포함하는 줄을 싶어. – Scuzzy

+0

사용자 이름 앞에 공백이 있어야하며 그 뒤에 사용자 이름과 콜론이 일치해야합니다. 그래서 user2를 찾아야하는 경우 패턴은 다음과 같습니다. "user2 :" 전체 줄을 반환하십시오. – John

+0

원본 질문을 일치해야하는 대상과 일치하지 않아야하는 대상에 대한 예제로 편집하십시오. – Scuzzy

답변

1

난 심각 불분명 무엇을 이해하지 않습니다. 변수가 있습니다 $ username = 'user2'; 나는

$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

실제로 "아무것도 보이지 않는다"또는 앞에있는 공간이 실제로 비어 있는지 찾고 싶습니까? –

+0

그래, 기능이 아닌 패턴이 필요해. – John