2012-05-28 2 views
0

8 pcre가 활성화되었으며 \ p {Po} 그룹과 다른 것들을 함께 사용하려고합니다.pcre 문자 클래스가 문자 범위 내에서 일치하지 않습니다.

앰퍼샌드 문자를 제외하고 싶습니다. 수업에서 특정 인물을 제외시키는 방법은 무엇입니까?

-- lua btw  
local utf8_general_punctuation_reg = "[\\p{Po}\\p{Cc}\\p{Cs}\\p{Pc}\\p{Pe}\\p{Ps}\\p{Pf}\\p{Pi}\\p{Sm}\\x{2100}-\\x{2123}\\x{2600}-\\x{26ff}]+" 

미리 감사드립니다. 당신은이에 대한 부정적인 lookbehind을 사용할 수 있습니다

local utf8_general_punctuation_reg = "[\\p{Po}\\p{Cc}\\p{Cs}\\p{Pc}\\p{Pe}\\p{Ps}\\p{Pf}\\p{Pi}\\p{Sm}\\x{2100}-\\x{2123}\\x{2600}-\\x{26ff}]+(?<!(&|\\.|:))" 

답변

1

:

BTW \ p는 {포}

그냥 아래의 대답에서 어떤 작품 추가 UTF8 http://www.fileformat.info/info/unicode/category/Po/list.htm입니다. 나는 pcre 구문에 익숙하지 않다. 첫 번째 정규식

[abc](?<!b) 

은 유니 코드 속성이 다른 문자를 허용보고하고 부정적인 lookbehind와 B 문자를 허용하는 B 또는 C 또는 수 있습니다.

위의 정규 표현식은 a와 c가 끝에 있지만 b는 일치하지 않습니다.

+0

그 구문은 pcre 구문과 호환됩니다. :) – chrislovecnm