나는 Hyperic HQ에 의해 생성 된 경고에서 정보를 구문 분석 할 일부 정규식을 작성하려고합니다. 경고는 같은 제목과 함께 이메일로 제공 :어설 션 및 옵션 부분 문자열 뒤에서의 문제
"[HQ] !!! - Alert: My Demo Website Alert Resource: demo.myserver.net Apache Web Server State: fixed"
짧은 매우 긴 이야기를 잘라, 나는 일관되게 상관없이 호스트 이름은 "아파치 웹 서버"부분을 잡아 할 수 있어야하는하지 않을 수 있습니다 심지어 존재할 수도있다. 나는 호스트 이름이 항상 "myserver.net"을 끝낼 것임을 알고 있습니다.
내가 가진 정규식은 다음과 같습니다이 선택적으로 호스트 이름을 다음과 같은 (그러나 포함하지 않음), "Resource:"
및 "State:"
사이에 0 개 이상의 문자와 일치합니다 내가 기대했다
/Resource:\s.*(?<=mydomain.net)?\s(.*)\s(?=State)/
있다.
반환 값은 일치하는 비트의 마지막 단어 인 "Server"
입니다. 이것은 호스트 이름이 문자열에 있는지 여부에 관계없이 발생합니다.
아무도 도와 줄 수 있습니까?
편집 : 이것은 내가
/Resource:\s(?:.*myserver.net)?(?<PartIWant>.*)\s(?:State)/
당신의 정규식 엔진 경우 명명 된 캡처 그룹 "PartIWant"에있을 것입니다 쓴 테스트 작업을 나타납니다
/Resource:\s(?:.*.myserver.net)?(.*)\sState/
다운로드 프레소에서, 테스트 데이터에서 모든 가능한 문자열을두고,이를 실행하고 제대로 – CaffGeek
1 일치하는 경우를 참조하십시오. "State"에 대한 미리보기를 사용하지 않아도됩니다. –
@Alan, 알기조차하지 않았다, 맞다, 거기에있을 필요가 없다 – CaffGeek