2014-05-13 2 views
-2

나는 우리가 .*으로 AND 문 grep을 할 수있는 온라인 학습 예 :
bash는 정규식 표현

aptitude search jdk | grep '7.*doc\|doc.*7' 

_ _ _ _ 페이지 오픈 JDK-7-문서 - 오픈 JDK 개발 키트 (JDK) 설명서
이 제대로 작동합니다. 표준 자바 나 자바 호환 developme에
_ _ _ _ 페이지 오픈 JDK-6-문서 -

aptitude search jdk | grep '7*doc\|doc*7' 

_ _ _ _ 페이지의 기본 - JDK-문서 :하지만 우리는 단지 *를 사용하는 경우, 즉

- OpenJDK 개발 키트 (JDK) 문서
OpenJDK 개발 키트 (JDK) 문서
이 작업은 잘 수행되지 않습니다.

스타 (/ 별표) 앞의 점 의미는 무엇입니까?

+2

in regex dot 의미하는 모든 문자'. * '는 0 번 이상 반복되는 문자를 의미합니다. – PradyJord

+0

^'7 * doc'은 0+ 7이되고 doc ('doc','7doc','7777777doc','7-doc')이 뒤따라야합니다. – Sam

+0

이 질문은 주제에 관한 것이 아니며 Unix/Linux 또는 수퍼 유저를 대상으로합니다. –

답변

1

참고 : 정규 표현식 구문은

grep와의 .는 "모든 문자"를 의미 ... 다른 프로그램에 따라 다를 수 있습니다. * 의미; 이전 문자는 0, 1 번 이상 반복됩니다. 그래서 표현

7.* 

의미 : 문자의 연속 뒤에 7 : "모든 문자"다음에 7는 시간 (0, 1 또는 그 이상)의 수, 즉 반복했다. 다른 표현

7* 

의미 : 문자 7, 0,1 회 이상 반복; 따라서 모든 문서와 일치합니다. 정규 표현식의 나머지 부분 만 여전히 작동 중입니다 ...

관련 문제