[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 개 이상의 선행 항목과 일치 함을 의미합니다.