使用':'正则表达式句子中的 (0x3A) 字符?

发布于 2024-11-27 04:37:34 字数 497 浏览 0 评论 0原文

不,这不是“:”字符,十六进制值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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不如归去 2024-12-04 04:37:34

我怀疑您的情况的问题不是 : 本身,而是它之前的 \b\b 标记单词字符和非单词字符之间的边界,但是 Class 由单词字符组成,而 : 是非单词字符。因此 \b 对于 : 的行为与对于 Class 的行为不同,因此:

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

如果您使用原始表达式但替换第一个 \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 while Class is comprised of word characters, : is a nonword character. So \b is behaving differently for : than it would for Class, so:

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

If you use your original expression but replace the first \b with (?<!\w), it may identify the : properly.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文