한 단어 또는 다른 단어를 포함하는 정규식


84

"초"또는 ""분 "이 뒤에 오는 정수와 일치하는 표현식을 만들어야합니다.

나는이 표현을 시도했다 : ([0-9]+)\s+(\bseconds\b)|(\bminutes\b)

몇 초 동안은 잘 작동하지만 몇 분은 아닙니다.

예를 들어 "5 초"는 5; 초를 제공합니다. "5 분"은 ;; 분

답변:


99

"OR"기호에 대한 추가 대괄호 쌍을 놓쳤습니다. 다음은 트릭을 수행해야합니다.

([0-9]+)\s+((\bseconds\b)|(\bminutes\b))

그것들이 없으면 숫자 뒤에 초 또는 단어 분만 일치했습니다.


17
그러나 그것은 필요하지 않은 "추가 일치"입니다. 사용 ([0-9]+)\s+(?:(\bseconds\b)|(\bminutes\b))또는([0-9]+)\s+(\bseconds\b|\bminutes\b)
dognose

3
맞습니다. \ b 초 \ b 및 \ b 분 \ b 주위에 괄호가 필요하지 않습니다!
micantox 2013-06-18

34

초 / 분 동안 단일 그룹을 사용할 수 있습니다. 다음 표현이 사용자의 요구에 적합 할 수 있습니다.

([0-9]+)\s*(seconds|minutes)

온라인 데모

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.