[regex] RegEx-가변 길이의 숫자 일치

전체적으로 참조 번호가 흩어져있는 문서를 구문 분석하려고합니다.

텍스트 텍스트 텍스트 {4 : 2} 더 놀라운 텍스트 {4 : 3}는 훨씬 나중에 {222 : 115}에 더 많은 텍스트가 추가됩니다.

참조는 항상 대괄호로 묶이고 둘 사이에는 항상 콜론이 있습니다. 나는 그들을 찾기 위해 표현을 썼다.

{[0-9]:[0-9]}

그러나 이것은 두 세 자리 숫자를 만나는 순간 분명히 실패하고 그것이 무엇인지 파악하는 데 어려움을 겪고 있습니다. 처리 할 수있는 최대 크기는 {999 : 999}입니다.

누구든지 이것을 처리하는 적절한 표현에 대한 아이디어가 있습니까?



답변

{[0-9]+:[0-9]+}

플러스를 추가해보십시오.


답변

어떤 정규식 엔진을 사용하고 있습니까? 대부분은 다음 표현을 지원합니다.

\{\d+:\d+\}

\d실제로 속기입니다 [0-9],하지만 중요한 부분의 추가 인 +하는 수단 “하나 이상의”.


답변

이 시도:

{[0-9]{1,3}:[0-9]{1,3}}

{1,3}수단 “앞의 문자 1 ~ 3 일치”.


답변

을 사용하여 이전 항목과 일치시킬 횟수를 지정할 수 있습니다 {min,max}.

{[0-9]{1,3}:[0-9]{1,3}}

또한 대부분의 정규식 버전 \d대신 숫자에 사용할 수 있습니다 [0-9].

{\d{1,3}:\d{1,3}}

또한 외부 탈출 고려할 수 있습니다 {}단지 그들이 반복 정의의 일부가 아닌 것이 분명하게.


답변

{\ d * : \ d *}가 작동합니다.

*는 숫자 인 0 개 이상의 선행 항목과 일치 함을 의미합니다.


답변