【发布时间】:2008-11-04 16:55:59
【问题描述】:
是否可以做类似 (?'A-B'\s*) 的事情?
【问题讨论】:
-
这取决于您认为该表达式应该匹配的内容。给我们一些例子,我们可以试着弄清楚你的意思。
是否可以做类似 (?'A-B'\s*) 的事情?
【问题讨论】:
来自文档:
(?
子表达式) (平衡组定义。)删除 前面的定义 定义组名 2 并存储在 组名 1 之间的间隔 先前定义的 name2 组和 当前组。如果没有组名2 定义,匹配回溯。因为 删除 name2 的最后一个定义 揭示了之前的定义 name2,这个构造允许栈 要使用的组 name2 的捕获数 作为跟踪的计数器 嵌套结构,例如括号。 在此构造中,name1 是可选的。 您可以使用单引号代替 尖括号;例如, (?'name1-name2')。
您的示例仅适用于存在已在正则表达式中定义的名为 B 的组,并且您打算执行 A-B 所暗示的操作。
如果您要询问组名中是否可以包含短划线,则不可以。破折号在命名组中具有特殊含义。
欲了解更多信息,请参阅the example in this topic.
【讨论】: