【问题标题】:Use the ':' (0x3A) character in a Regex sentence?在正则表达式句子中使用“:”(0x3A)字符?
【发布时间】:2011-07-29 20:47:04
【问题描述】:

不,这不是The ':' character, hexadecimal value 0x3A, cannot be included in a name的复制品

我的脚本语言的语法高亮显示有一个正则表达式:

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

这基本上标志着类名称

(用我上网的引擎)

我不是正则表达式的大师,但由于某种原因,使用我的语言创建标签的 : 字符不起作用。

我试过了

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

它拒绝工作!

有什么想法吗?

【问题讨论】:

标签: c# regex syntax-highlighting


【解决方案1】:

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

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

如果您使用原始表达式但将第一个\b 替换为(?&lt;!\w),它可能会正确识别:

【讨论】:

    猜你喜欢
    • 2022-08-02
    • 2016-04-25
    • 2012-08-19
    • 2012-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多