2010-07-14 6 views
2

텍스트 블록을 가져 오는 중입니다.이 블록 내에서 "암호가있는 kEqHqPUd"로 끝나는 구문이 포함될 것입니다. 여기서 kEqHqPUd는 동적으로 생성 된 암호입니다. 누구든지이 안에서 암호 만 잡을 수있는 간단한 정규식을 제공 할 수 있습니까? FWIW 나는 PHP를 사용하고 있습니다.라인 끝의 정규식

감사

+4

나만의 아이디어를 찾으려고 했습니까? –

답변

9
preg_match('/WITH PASSWORD (.*)$/im', $block, $matches); 
//result in $matches[1] 

의 핵심은 "m" modifier입니다.

3

당신이 ...하지만 당신이 의미하는 경우 "문장 암호로 끝나는 있지만, 다른 문장 다음에 할 수있다", "을 종료 문구를"정의하는 방법 확실하지, 다음 해결책이 될 수있다 :

$text = <<<TEXT 
This is some 
text and there is a sentence that ends 
with WITH PASSWORD kEqHqPUd. Is that 
matched ? 
TEXT; 

$matches = array(); 
if (preg_match('/WITH PASSWORD ([\w\d]+)/', $text, $matches)) { 
    var_dump($matches[1]); 
} 

비밀번호가 문자 및/또는 숫자 만 포함되어있는 경우에만 작동하지만 "문구 끝" "다음에 무언가가있는 경우 작동합니다. $ 기호 "문자열끝을"의미

$text = <<<TEXT 
This is some 
text and there is a sentence that ends 
with WITH PASSWORD kEqHqPUd 
TEXT; 

$matches = array(); 
if (preg_match('/WITH PASSWORD (.+)$/m', $text, $matches)) { 
    var_dump($matches[1]); 
} 

참고 : 암호가 전체 문자열의 마지막 일을 의미하는 경우


는, 다음과 같이 사용할 수 있습니다.

+0

나는 그 모호성이 나에게 일어나지 않았다고 고백하지만 대문자는 실제로 적절한 문장으로 영어 텍스트가 흐르는 것이 아니라고 암시한다고 생각한다. – Artefacto

0

PHP가 표준 정규식 패턴을 허용한다고 가정하면 다음은 첫 번째 캡처 그룹에 암호가있는 "WITH PASSWORD (. +) + $"를 사용해야합니다.