2012-08-10 4 views
0

어떤 이유로 지연 형 매칭을 사용할 수 없습니다. 여기 정규식 첫 번째 인스턴스 만 일치

텍스트입니다 -

806 ?  Ss  0:00 /usr/sbin/apache2 -k start 
    823 ?  S  0:00 \_ /usr/sbin/apache2 -k start 
    824 ?  S  0:00 \_ /usr/sbin/apache2 -k start 
    825 ?  S  0:00 \_ /usr/sbin/apache2 -k start 
    826 ?  S  0:00 \_ /usr/sbin/apache2 -k start 
    827 ?  S  0:00 \_ /usr/sbin/apache2 -k start 

내가

806 ?  Ss  0:00 /usr/sbin/apache2 -k start 

내 정규식, 즉 "아파치"가 단지 첫 번째 라인을 일치시킬은 다음과 같습니다 -

(apache)? 

하지만 모든 인스턴스와 일치하는 것은 작동하지 않는 것 같습니다. 뭐가 문제 야? 그것은 분명 모든 일치 있도록

+0

'?' "이 물음표 앞에 오는 것 중 0 또는 하나를 찾으십시오"를 의미합니다. – godspeedlee

+0

이를 위해'ps'를 구문 분석 할 필요가 없습니다. 시스템에서'/ var/run/apache2.pid' 또는 유사한 것을보십시오. – derobert

답변

1

귀하의 정규식 (apache)?는 약 "중 아파치 또는 을 아파치하지 일치"를 의미한다. 당신은 지정하지 않은

하는 프로그래밍 언어 나 사용중인 정규식 맛,하지만 단어를 아파치 포함하는 전체 행을 일치합니다이 정규식 :

.*apache.* 

을 본 것 물론 경기의 모든 행은 아파치이라는 단어가 포함되어 있으므로 처음 사용하는 프로그래밍 언어 만 사용하려면 프로그래밍 언어를 사용해야합니다.

참고 : (

^.*apache.*$ 

을 : 선택의 정규식 맛이 점으로 줄 바꿈과 일치하는 경우에, 당신은 여러 모드로 가서 다음과 같이 라인과 라인 앵커의 끝의 시작을 추가해야 할 수도 있습니다 멀티 라인 모드를 켜는 것을 기억하십시오!)