2016-08-04 9 views
0

특수 태그가 "{code}"로 있습니다. jflex를 사용하여 두 태그 사이에서 텍스트를 가져와야합니다. 그것은jflex를 사용하여 특수 태그간에 텍스트를 가져 오는 방법

CODE_BLOCK= "{code}"(.*?)"{code}" 

문제는 항상만을 먼저 지난 태그 사이의 텍스트를 반환한다는 것입니다에 대한

나는 다음과 같은 정규식을 사용하려합니다. ?처럼 보이는 것이 전혀 작동하지 않습니다. 브레이스 브래킷 ({) 문자가 텍스트에 표시되지 않는 경우

: 여기 몇 가지 다른 옵션이 유일

{code}abs{code} 

{code}abs{code}{code}{code} 

답변

0

에서 얻을 수있는 능력이 필요합니다 , {code}([^{]+){code}을 정규식으로 사용할 수 있습니다.

그렇다면 도망쳐 서 {code}((?:[^{]|\\{)+){code}과 같은 작업을 수행 할 수 있습니다. \\을 적절한 이스케이프 문자로 바꿉니다 (이 경우 문자 역 슬래시 문자의 일반적인 규칙을 따랐습니다).

태그 사이에 나타나고 이스케이프 처리되지 않은 경우 적절한 구문 분석기를 작성하는 것이 좋습니다. 정규식은 실제로 이런 종류의 작업에 사용되지 않기 때문입니다.