2009-03-08 3 views

답변

5

* 정규식. *은 성공적으로 0 문자의 문자열 또는 인접한 문자간에 발생하는 문자열과 일치 할 수 있습니다.

그래서 패턴이 괄호 안에 0 문자와 일치하고 그 다음에 바로 0 문자가 일치합니다.

정규식이 /f(.*)\1/이면 'f'와 첫 번째 'o'사이의 문자열 'foo'와 일치합니다.

.* 대신 .+을 사용해도 좋으며 0 이상이 아닌 하나 이상과 일치 할 수 있습니다. (. +를 사용하면 'foo'의 'oo'와 일치해야합니다.)

+0

/F (. *) \ 1 /는 'foo'와 일치합니다. 왜냐하면 별이 탐욕 스럽기 때문입니다. 그러나 그것은 또한 'f'와 일치 할 것입니다. –

0

\ 1은 나중에 대체하거나 일치 항목에서 일치 항목을 가져와 정규 표현식을 더욱 세분화하려고 할 때 일반적으로 사용되는 역 참조입니다. 당신은 그냥 (. *)을 사용해야한다. 이것은 당신이 원하는 결과를 줄 것이고 자동적으로 역 참조 번호 1이 주어질 것이다. 나는 정규 표현식 전문가가 아니다. 그러나 이것은 나의 제한된 지식에 기초를 둔 나의 생각이다.

실제로 제게 무슨 일이 일어나고 있는지 항상 알기 위해 RegexBuddy로 되돌아갑니다.

+0

의도는 텍스트의 행에 두 번 나타난 문자열과 일치하는 것일 수 있습니다. 그걸로 \ 1 작동합니다. – Mnebuerquo

+0

그건 의미가 있습니다. Regex에 대한 나의 제한된 지식은 다시 한번 보여줍니다! –

0

\ "재 경기"명령입니다. 문제는 당신이 다시 경기를 즉시 싶어, (예, BLABLA)

/(.+)\1/ 

이상 (예를 들어, BLA 에헴 BLA)

사실
/(.+).*\1/ 
관련 문제