"지금 8시 15 분 오후 시간입니다. 다른 텍스트 뒤에"문장명확히 정규 표현식
가정
이유는 다음과 같은 정규 표현식은 라인과 일치하지 않을까요?
egrep '\<[1-9]\s*:\s*[0-9]{2}\s*[Pp][Mm]\>' file
내가 GNU의 egrep을을 사용하여, MAC 오전
$ egrep을 --version egrep을 (GNU의 GREP) 2.5.1
"지금 8시 15 분 오후 시간입니다. 다른 텍스트 뒤에"문장명확히 정규 표현식
가정
이유는 다음과 같은 정규 표현식은 라인과 일치하지 않을까요?
egrep '\<[1-9]\s*:\s*[0-9]{2}\s*[Pp][Mm]\>' file
내가 GNU의 egrep을을 사용하여, MAC 오전
$ egrep을 --version egrep을 (GNU의 GREP) 2.5.1
완전히 재현 할 수 없습니다.
맥 OS X 10.7 :
(0)marks-mac-mini> cat file
The time is now 8:15pm. Followed by some other text
"The time is now 8:15pm. Followed by some other text"
(0)marks-mac-mini> egrep '\<[1-9]\s*:\s*[0-9]{2}\s*[Pp][Mm]\>' file
The time is now 8:15pm. Followed by some other text
"The time is now 8:15pm. Followed by some other text"
(0)marks-mac-mini> egrep --version
egrep (GNU grep) 2.5.1
그래서 당신이 어딘가에 뭔가 잘못이야 ...
편집 아, 문제는 공간입니다. egrep은 \s
을 인식하지 못합니다. 그게 펄시즘이야. 귀하의 질문에는 거기에 공간이 포함되지 않았습니다.
이 때문에 선두의의와 후행 문자 정규식 : < 및> 그것들을 꺼내와 일치합니다.
하지만 그 이유는 무엇입니까? Regex는 [Pp] [Mm] – JAM
@JAM까지 끝까지 잘 작동하는 것 같습니다. 매우 간단합니다. 정규 표현식 패턴을 사용하면 대상 문자열에 있어야합니다. 아마 당신은 그 (것)들을 ** \ b ** (단어 경계) 또는 무엇인가 의미합니까? – McGarnagle
'egrep '[1-9] \ s * : \ s * [0-9] {2} \ s * [Pp]'file'도 해석하지 못합니다. 아니요 <> present – JAM
"실패"는 어떤 의미입니까? –
일치하지 않습니다. 그것은 분명했다. 나는 – JAM
@ JAM이라는 질문을 업데이트 할 것입니다. 나는 그것이 당신이 의미하는 바가 아주 분명하다고 생각했습니다. 힘든 군중들이 여기 있습니다. – McGarnagle