2011-11-02 4 views
1

텍스트 한정자로 묶인 구분 된 파일의 항목과 일치하는 정규식을 작성하려고합니다. X는 필드 구분 기호 인 경우, Y는 한정자이며,이 항목입니다, 입력 문자열의 예상 형태는 다음과 같습니다문자 또는 줄 앵커를 일치시키는 정규식

XYaaaYXYaaaYXYaaaYX 
YaaaYXYaaaYXYaaaYX 
XYaaaYXYaaaYXYaaaY 
YaaaYXYaaaYXYaaaY 

즉, 줄의 시작과 끝 부분에 필드 구분 기호가있을 수도 있고 없을 수도 있습니다.

궁극적으로 나는 YaaaY를 빼내려고하지만 에만 구분 기호 또는 줄 시작/끝으로 경계가있을 경우. 예를 들어, 정규 표현식은 XYaaaYX 및 YaaaYX에서 일치해야하지만 XYaaaYaaaYX에서는 일치하지 않아야합니다. 라인 끝의 적절한 "또는"조건을 파악할 수 없다는 점만 제외하면 상당히 쉽습니다.

구분 기호가있는 대소 문자 (regex = XYa*YX)와 일치하는 것은 간단하지만 X 시작 또는 줄 시작하는 방법을 알 수 없습니다. [^|X]Ya*Y[X|$]과 같은 것은 가까운 것처럼 보이지만 대괄호가 줄 앵커를 엉망으로 만들기 때문에 작동하지 않습니다.

모든 토론을 검색했습니다. 찾을 수 있습니다 - 찾은 내용이 없습니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까? 감사!

+0

, 내 마음에 드는 [Regular-Expressions.info] (http://regular-expressions.info) –

답변

3

문자 클래스보다는 그룹화를 사용해보십시오. 당신이 정규식 학습을위한 좋은 자원을 원하는 경우에

/(^|X)Ya*Y(X|$)/ 
+0

굉장하다. 뭔가 단순해야한다는 것을 알았습니다. 감사! – Gadzooks34

관련 문제