不,这不是The ':' character, hexadecimal value 0x3A, cannot be included in a name
的复制品对于我的脚本语言,我的语法高亮显示有一个正则表达式:
`@"\bClass+(?<range>\w+?)\b"`
基本上标记了Class Name
(我上网的引擎)
我在正则表达式中不是主人,但出于某种原因,使用我的语言创建标签的:
字符不起作用。
我试过
@"\b:+(?<range>\w+?)\b"`, `@"\b\:+(?<range>\w+?)\b"`<RB> `@"\b(\x3A)+(?<range>\w+?)\b"
它拒绝工作!
有什么想法吗?
答案 0 :(得分:3)
我怀疑您的案例中的问题不是:
本身,而是\b
之前的问题。 \b
标记单词字符和非单词字符之间的边界,但Class
由单词字符组成,:
是非单词字符。因此\b
:
的行为与Class
的行为不同,所以:
`\bClass` matches " Class Name"
`\b:` does not match " : Name"
如果您使用原始表达式,但将第一个\b
替换为(?<!\w)
,则可能会正确识别:
。