【问题标题】:Can I use dashes in Named Captures with .NET's System.Text.RegularExpressions?我可以在带有 .NET 的 System.Text.RegularExpressions 的命名捕获中使用破折号吗?
【发布时间】:2008-11-04 16:55:59
【问题描述】:

是否可以做类似 (?'A-B'\s*) 的事情?

【问题讨论】:

  • 这取决于您认为该表达式应该匹配的内容。给我们一些例子,我们可以试着弄清楚你的意思。

标签: .net regex


【解决方案1】:

来自文档:

(?子表达式)

(平衡组定义。)删除 前面的定义 定义组名 2 并存储在 组名 1 之间的间隔 先前定义的 name2 组和 当前组。如果没有组名2 定义,匹配回溯。因为 删除 name2 的最后一个定义 揭示了之前的定义 name2,这个构造允许栈 要使用的组 name2 的捕获数 作为跟踪的计数器 嵌套结构,例如括号。 在此构造中,name1 是可选的。 您可以使用单引号代替 尖括号;例如, (?'name1-name2')。

您的示例仅适用于存在已在正则表达式中定义的名为 B 的组,并且您打算执行 A-B 所暗示的操作。

如果您要询问组名中是否可以包含短划线,则不可以。破折号在命名组中具有特殊含义。

欲了解更多信息,请参阅the example in this topic.

【讨论】:

    猜你喜欢
    • 2014-09-11
    • 2017-12-05
    • 2015-05-28
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 1970-01-01
    • 2017-08-28
    • 1970-01-01
    相关资源
    最近更新 更多