내가 여기서 무엇을 놓치고 있는지 잘 모르겠습니다. 작동해야 하는 여러 조합을 시도했지만 결합할 때마다 마지막 숫자 집합이 제거됩니다.
또한 도움이 되는지 알아보기 위해 대시 문자를 "-"로 만들었습니다(그렇지 않았습니다).
견본
PriceVolHistory_KITDQ_v1 (Range_0343935).xlsx
Amex_Robin Smyth (Range_0339935-0339982).pdf
0-CHIPS Participant List - 05-05-15 (Range_0339985-0339986).pdf
0-CHIPS Payment Message Key (Range_0339987-0339990).pdf
0-CHIPS Payment Message Structure (range_0339983-0339984).pdf
2610 Data (Range_0339991).xlsx
정규식
Range_(\d{7}|\d{7}-\d{7})
Range_(\d{7}|Range_\d{7}-\d{7})
여기 샘플 -https://regex101.com/r/skjYvn/1
어떤 도움이라도 대단히 감사하겠습니다. 감사합니다.
답변1
정규 표현식은 탐욕적입니다. 가능한 첫 번째 항목과 일치합니다. (|a|b)
항상 빈 문자열과 일치합니다.
다시 말하지만, (\d{7}|\d{7}-\d{7})
항상 일치합니다 \d{7}
(또는 전혀 일치하지 않습니다). 두 번째 옵션으로 진행되지 않습니다.
대신, 당신이 원하는 것은 입니다 (\d{7}-\d{7}|\d{7})
. 그런데 왜 그렇게 장황합니까?
\d{7}(-\d{7})?
잘 작동합니다.
그래서 당신은 다음을 얻습니다:
Range_\d{7}(-\d{7})?