나는 텍스트 블록의 (반드시 반복되지 않음) 순서를 일치합니다 정규식, 예를 들어 쓰기를 시도하고있다 :실제 경기가 아닌 패턴을 참조하는
foo,bar,foo,bar
내 최초의 생각이었다을
(foo|bar)(,\1)*
같은 역 참조, 뭔가를 사용하지만이 정규식은 foo,foo
또는 bar,bar
하지만일치하는지 밝혀하기또는 bar,foo
(등등).
패턴의 일부를 참조하는 다른 방법이 있습니까?
현실 세계에서 foo
및 bar
은 50 자 이상의 긴 정규 표현식이며 사본을 붙여 붙여 시퀀스를 정의하는 것을 피하기 만하면됩니다.
제 문제는 정규식이 외부에서 정의되고 패턴이 정적으로 컴파일된다는 것입니다. 접근법이 가능할 수도 있지만, 마지막 쉼표 뒤에 쉼표가없고 다른 쉼표 사이에 쉼표가 있는지 확인하지 않습니다. – mindas
나는 오해를하고 있을지 모르지만 변수에 외부 패턴을 가져 와서 패턴에 꽂을 수는 없습니다. 위의 편집 된 버전을 참조하십시오. –
것은, 나 can not. 정의 된 정규 표현식에 따라 사물의 유효성을 검사하는 레거시 프레임 워크가 있고 다른 객체 유형에는 다른 정규 표현식이 할당되어 있습니다. 특정 유형의 데이터에만 특수 메커니즘을 사용하는 것은 용납 될 수 없습니다. 어쨌든 귀하의 의견을 보내 주셔서 감사합니다. – mindas