2011-03-31 5 views
0

나는 내 얼굴을 위해 html을 깨뜨리는 정규 표현식을 가지고있다. 너무 길기 때문에 전체 정규식을 제시하지 않겠습니다. 요컨대, 다중 행 테이블 셀은 행마다 파서를 구성합니다. 최근 문제가 생겼습니다 : 구문 분석 페이지의 레이아웃이 변경되어 새로운 레이아웃에 맞게 정규식을 다시 작성하기 시작했습니다. 그러나 일부 행의 특정 셀에 필요한 레이아웃 배치 데이터가 다를 수 있습니다.조건을 사용하여 정규식 그룹 캡처하기

우리는 무엇을 가지고 있습니까?

셀의 배치는 질문에 날 리드하는 this 또는

this처럼 같이 할 수있다 : 어떻게 내가 필요한 데이터를 캡처 할 추가 불필요한 그룹을 가지고 있지 않은거야?

정규 표현식의 조건은 regular-expressions.info/conditional.html에 설명되어 있지만 읽었지만 여전히 단서는 없습니다.

답변

2

이 :)

<td class='(?:class1|class2)'>\s*((?=\w).*)\s*</td> 
+0

+1 당신의 표현이 분명히 내 것보다 낫다 – morja

+0

당신의 지원에 감사하고 그에 따라 당신의 대답을 업데이트하십시오 :) – CodeWrite

+0

고마워요. 귀하의 정규 표현식이 완벽하게 맞습니다. – Nemoden

1

편집 :은 더 나은 해결책이므로 regexhacks 표현식을 사용했습니다.

확실하지 않지만 어쩌면 non-capturing 그룹을 (? :)으로 사용하고 있습니다.

<td class='class[12]'>\s*((?=\w).*)\s*</td> 

을하지만 더 복잡한 경우에 당신이 그들을 사용할 수 있습니다 따라서이 예에서는 그룹을 필요가 없습니다 것입니다, 잘

<td class='class(?:1|2)'>\s*((?=\w).*)\s*</td> 

을 할 수 있습니다.

참조 샘플 : rubular

는 그러나 이것은 당신이 원하는하지 않을 수 있습니다. 문제의 더 정확한 예를 들어 주시겠습니까?

+0

이 응답 해 주셔서 감사합니다 도움이 될 것입니다. 이제는 조건부 정규 표현식이 어떻게 작동하는지 이해하기 시작했습니다. – Nemoden

관련 문제