使用':'正则表达式句子中的 (0x3A) 字符?
不,这不是“:”字符,十六进制值0x3A,不能包含在名称中的复制品
我有我的脚本语言的语法荧光笔的正则表达式:
`@"\bClass+(?<range>\w+?)\b"`
它基本上标记了类名称
(使用我上网的引擎)
我不是正则表达式的大师,但由于某种原因:
使用我的语言创建标签的字符 - 不起作用。
我尝试过
@"\b:+(?<range>\w+?)\b"`, `@"\b\:+(?<range>\w+?)\b"`<RB> `@"\b(\x3A)+(?<range>\w+?)\b"
但它拒绝工作!
有什么想法吗?
No, this is not a replicate of The ':' character, hexadecimal value 0x3A, cannot be included in a name
I have a Regex for my syntax highlighter for my scripting language:
`@"\bClass+(?<range>\w+?)\b"`
which basically marks Class Name
(with the engine I got online)
I'm no master in Regex but for some reason the :
character that uses my language to create labels - doesn't work.
I tried
@"\b:+(?<range>\w+?)\b"`, `@"\b\:+(?<range>\w+?)\b"`<RB> `@"\b(\x3A)+(?<range>\w+?)\b"
And it refuses to work!
Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我怀疑您的情况的问题不是
:
本身,而是它之前的\b
。\b
标记单词字符和非单词字符之间的边界,但是Class
由单词字符组成,而:
是非单词字符。因此\b
对于:
的行为与对于Class
的行为不同,因此:如果您使用原始表达式但替换第一个
\b
与(? 配合使用,可以正确识别
:
。I suspect the issue in your case is not the
:
itself, but the\b
before it.\b
marks the boundary between a word character and nonword character, but whileClass
is comprised of word characters,:
is a nonword character. So\b
is behaving differently for:
than it would forClass
, so:If you use your original expression but replace the first
\b
with(?<!\w)
, it may identify the:
properly.