2013-10-08 3 views
0

나는 제로정규식

val source = """...some noise .... <input type="hidden" name="myId" id="myId" value="1234"/> ...some noise ....""" // or value="-5678"/> 

val regex = """<input type="hidden" name="myId" id="myId" value="([-?\\d+])"/>""".r 
regex findAllIn source 

미만의 사람을 포함한 모든 정수 할 수 있습니다 값의 속성의 값을 얻기 위해 노력하고 있어요에서 그룹을 캡처 할 수 없습니다 그리고 scala.util.matching.Regex.MatchIterator = empty iterator

답변

2

귀하의 정규식은 당신이하지 생각하지 않습니다. 그것은 - 또는 ? 또는 \ 또는 d 또는 + 일치합니다. 모든 것을 character class에 넣었습니다. 당신은 사용해야

(-?\d++) 

는 스칼라 반추 동물의 위벽 견적을 사용하는 당신이 \ 탈출 배가 할 필요가 없습니다.

+0

네, 이제 작동합니다. 그러나 일하지는 않습니까? –

+0

@Grienders 당신은 무엇을 의미합니까? '[]'는 문자 그룹이고 그와 같이 작동합니다. 그냥 잘못 사용하는 것입니다. –

+0

'([-? \ d +])'가 작동하지 않는 이유를 설명해 주시겠습니까? –

0

변경을 얻을 이 부분 :

([-?\\d+]) 

에 :

(-?\\d+) 
+0

같은 것이 있습니다. –

1

@ M42는 대괄호를 지우는 것과 마찬가지로 숫자 마커 앞에 백 슬래시 중 하나를 제거하려고합니다 ("삼중 인용"문자열 안에 있음을 기억하십시오). 필요하지 않습니다. 백 슬래시를 이스케이프 처리합니다.

(-?\d+) 
+0

이 @ M42의 대답에 코멘트를해야합니다. 그것이 의미하는 대답이 삭제되면 쓸모 없게됩니다. 간단히 M42의 대답이 말하는 것을주의하는 편집 –

+0

는 (I 줄 마지막 조각은하지만, 그 정보없이 여전히 사용 가능한)입니다. 미래를 염두에 두겠습니다. - 감사합니다 @ BobistheSpider. – Shadowlands