2017-03-29 5 views
0

단어 뒤에 공백이나 탭 문자 한 개와 5 자리 숫자가 나오는 단어를 찾으려고합니다. 예를 들어 some noise text off 12345 some noise text again. 또 다른 예는 Some noise text off 12345.입니다.단어 뒤에 공백과 N 자리 숫자가 표시됩니다.

정규식은 "off 12345"와 일치해야합니다. 숫자 뒤에 문장 부호가 올 수 있습니다. 패턴은 단어 "off"와 일치해야하며 그 뒤에있는 다른 단어는 아닙니다.

감사

답변

1

당신은 더 일반적인 수 있도록이

off\s\d{5} 

Working demo

+0

Federico에 도움을 주셔서 감사합니다. "12345 테스트 테스트"와 일치하지 않습니다. <-이 문자열 ... – Davita

+0

@Davita, 일치하지 않습니다, [데모는 여기] (https://regex101.com/r/M5bvAh/3)를 확인하십시오. 그러나 그 패턴을 포함하는 줄을 찾으려면'. * off \ s \ d {5}. * '를 사용하면됩니다. * –

+0

Federico, 네가 맞아, 작동하고있어. 코드에서 내 실수 였어. 지금 내가 가진 한 가지 문제는 6 문자 숫자의 처음 다섯 부분과 일치한다는 것입니다. 예를 들어, 1에서 5까지의 123456과 일치합니다. 길이를 5 자보다 긴 숫자와 일치시키지 않도록 할 수 있습니까? 고마워 – Davita

1

같은 간단한 정규식을 사용할 수 있습니다, 당신은

\b\w+\s\d{5}\b 

여기 \b 일치를 사용할 수 있습니다 경계. 사용하지 않으면 다음과 같은 내용이 표시 될 수 있습니다.

123off 12345 
off 1234567 
+0

안녕하십니까, 답장을 보내 주셔서 감사합니다. 정말 감사. 문제는 정확하게 5 자리 10 진수와 일치하는 정규식을 찾는 것입니다. 이제는 길이가 5보다 큰 숫자와도 일치합니다. – Davita

+0

나는 당신의 예제를 regex101에서 테스트했다. 아무 문제가없는 것 같습니다. 어떤 경우에 작동하지 않습니까? –

+0

자바에 대한 테스트를하고 있는데, 구현이 플랫폼마다 다르다고 생각하십니까? 예를 들어, "12345 test"테스트와 일치하지 않습니다. – Davita

관련 문제