2014-06-05 4 views
0

테이블의 인덱스 3 인 행에서 인덱스 1 인 셀을 선택할 수있는 정규식을 얻으려고합니다. 나는이 일을 어떻게 할 수 있는지 확신 할 수 없다. 특히 그 특정한 세포만을 골라내는 것. 행이나 셀에 포함될 내용을 알지 못한다고 가정해야합니다.정규식 - n 번째 값 선택

표는 HTML 형식입니다.

누군가이 문제에 대해 조언 해 줄 수 있습니까?

정상적인 자바 스크립트 RegEx 양식에 있어야하며 jQuery를 사용할 수 없습니다.

+3

테이블의 형식은 무엇입니까? HTML? 표준 DOM 탐색 메서드 (또는 모든 브라우저에서 지원하는 경우 기본 QuerySelector)를 사용하면 훨씬 편리 할 것입니다. – Katana314

+0

HTML 테이블이므로 문제를 해결해야합니다. 정규 표현식 만 사용할 수 있습니다. – TheBritishBloke

+0

구직자가하는 일이라면 그 일을 거부하십시오. 이것이 교사의 도전이라면 학비 환불을 요청하십시오. 테이블/HTML은 대단히 Regex를 사용하는 잘못된 도메인입니다. 당신이 동의하지 않는다고 생각한다면, 아마 당신은 우리에게 좀 더 자세하게 설명하려고 할 수 있습니다. ** 정확히 ** 당신이 주어진 문제 해결 과제는 무엇입니까? (참고 : "당신은 JQuery를 사용할 수 없습니다."는 확장명이 "RegEx 만 사용할 수 있음"을 의미하지는 않습니다.) – Katana314

답변

0

모든 의 모든 텍스트와 일치합니다. 세포입니다. 지금 nth 세포에서 작업하고 있습니다. javascript가 lookbehind를 지원하지 않기 때문에 javascript에서 작동하지 않습니다. 나는 당신이 javascript에서 이것을하고 싶어한다는 것을 알고 있지만 그것은 불가능하다. lookbehind없이이 정규식을 수행 할 수 없습니다. 형태의

가정 테이블 :

<tr> 
    <td>Jill</td> 
    <td>Smith</td> 
    <td>50</td> 
</tr> 
<tr> 
    <td>Eve</td> 
    <td>Jackson</td> 
    <td>94</td> 
</tr> 

정규식은 모든 세포의 텍스트를 일치는 다음과 같습니다

(?<=<td>).*?(?=<)

나는이의 라인을 따라 뭔가를 생각하고 있어요 :

(?s)((?<=(<\/td>){cell index}+<td>).*?(?=<.*))

그러나 Sublime의 검색 도구에서는 그 lookbehind가 올바르게 구문 분석되지 않습니다.

셀프 번호를 지정하기 위해 lookbehind 내의 캡처 그룹에 번호를 입력 한 다음 해당 행 번호에 대해 해당 프로세스를 반복 할 수 있습니다. 어떤 제안?

더 많은 수신이 있습니다.