2011-07-29 3 views
0
The ':' character, hexadecimal value 0x3A, cannot be included in a name 아니,이 The ':' character, hexadecimal value 0x3A, cannot be included in a name 복제

Regex 문장에서 ':'(0x3A) 문자를 사용 하시겠습니까?

내 스크립트 언어 내 구문 형광펜 정규식 있어요 :

`@"\bClass+(?<range>\w+?)\b"` 

기본적으로 클래스 이름 표시

(엔진 내가 온라인있어)

나는 정규 표현식에 마스터가 아니지만 : 문자가 내 언어를 사용하여 레이블을 만들 때 작동하지 않는다.

시도
 @"\b:+(?<range>\w+?)\b"`, `@"\b\:+(?<range>\w+?)\b"`<RB> `@"\b(\x3A)+(?<range>\w+?)\b" 

그리고 그것은 작동하지 않습니다!

어떤 아이디어?

+0

[RegEx 시퀀스를 직접 테스트하는 훌륭한 도구입니다.] (http://gskinner.com/RegExr/) 항상 사용합니다. 아마 당신의 문제를 해결하는 데 도움이 될 것입니다. :) – qJake

답변

3

귀하의 케이스에있는 문제가 : 자체가 아닌 것으로 의심되지만 그 전에 \b입니다. \b은 단어 문자와 단어가 아닌 문자 사이의 경계를 나타내지 만 Class은 단어 문자로 구성되지만 :은 단어가 아닌 문자입니다. 그래서 \b 그래서, 그것은 Class 위해하고자보다 : 다르게 행동한다 :

`\bClass` matches " Class Name" 
`\b:` does not match " : Name" 

당신이 원래 표현을 사용하지만 (?<!\w)에 처음 \b를 교체하는 경우, 그것은 제대로 :를 식별 할 수 있습니다.

+0

감사합니다. 완벽하게 작동합니다. –

관련 문제