문자열 목록이 있습니다. 그들 중 일부는 형태 123-...456
입니다. 변수 부분 "..."은 다음과 같습니다.
- 문자열 "apple"다음에 하이픈 (예 : 하이픈)
123-apple-456
- 문자열 "banana"뒤에 하이픈 (예 : 하이픈)
123-banana-456
- 빈 문자열 (예 :
123-456
하나의 하이픈 만 있음)
"apple"또는 "banana"이외의 단어는 유효하지 않습니다.
이 세 가지 경우 각각 "apple", "banana"및 ""와 일치 시키려고합니다. 하이픈을 캡처 하고 싶지 는 않지만 항상 일치 시키고 싶습니다 . 문자열이 123-...456
위에서 설명한 형식이 아닌 경우 전혀 일치하지 않습니다.
이를 위해 정규식을 어떻게 작성합니까? 미리보기, 뒤로보기, 둘러보기 및 비 캡처 그룹을 허용하는 맛이 있다고 가정합니다.
여기서 중요한 점은 "사과"또는 "바나나" 가있는 경우 끝에 하이픈이 있어야 하지만 일치하지는 않는 것입니다. 빈 문자열을 일치시킬 때 뒤에 하이픈이 없어야합니다 . 이 주장을 캡슐화하는 정규식이 올바른 것이라고 생각합니다.