2012-07-02 3 views
2

숨겨진 HTML 필드에서 값을 추출해야합니다. 약간 알아 냈지만 현재 붙어 있습니다.이 정규식 문제를 어떻게 처리합니까?

<input type="hidden" name="form_id" value=".*" 

그러나 이것은 HTML에서 전체 문자열을 추출 :

내 정규식처럼 보인다. 내가 문자열에서 "값"을 추출 할 필요가

<input type="hidden" name="form_id" value="123"/> 

항상 변화하고있다,하지만, "이름은"항상 동일합니다 : 같은

문자열 보인다. 다른 표현식을 사용하지 않고 추출하는 방법이 있습니까? 어떤 도움을 주셔서 감사합니다.

+0

"또 다른 표현을하지 않고"정의하십시오. –

+0

@humble_coder 다른 정규 표현식을 만들지 않고. 하나의 표현식 (한 줄)에서 값을 추출하고 싶습니다. – user1224096

+5

정규식으로 HTML을 파싱하는 것에 대해 말하는 티셔츠를 가지고 있다고 확신합니다 ........ –

답변

3
(?<=<[^<>]+?name="form_id"[^<>]+value=")(.*)(?=") 
1

방금이 내용을 던졌습니다. 기본적으로 귀하는 귀하의 요청에서 어떠한 결말도 부정하고 싶습니다.

<[^>]*hidden[^>]*value="(.*)"[^>]*> 

를 다음 첫 번째 캡처 그룹 (Delphi instructions)을 읽는 : 그래서 당신은 가능성이 성격의 무언가를 할 것입니다. 이것은 "숨겨진"및 "가치"에 대한 위치적인 순서를 가정 할지라도 최대한 합리적으로 유지합니다. 당신이 약간 청소기 내다을 사용할 수 있습니다 사용할 수있는 순서에 관계없이 값을 찾기 위해

이 제안되었다 같이 귀하의 예를 들어 내가 이것을 테스트 한

^(?=.*name="form_id").*value="([^"]*)".*$ 
+0

고마워,하지만 이건 전체 문자열뿐 아니라 값을 반환한다. – user1224096

+0

값이 첫 번째 캡처 그룹에 있습니다. 너는 그걸 잘 알고 있니? –

+0

그래, 미안해. 그걸 놓쳤다. 첫 번째 캡처 그룹이 값을 반환합니다. 주문이 변경되면 예제를 게시 하시겠습니까? 예를 들어 "value"가 "name"앞에 오면 – user1224096

0

<[a-zA-Z"= _^>]*value="(\d*)"/>
. 만 입력 태그 추출 할 경우
당신은 쓸 수 있습니다 :

<input[a-zA-Z"= _^>]*value="(\d*)"/> 
관련 문제