C# 要匹配地址和可选后缀的正则表达式
我有两种格式的地址:C# 要匹配地址和可选后缀的正则表达式,c#,.net,regex,C#,.net,Regex,我有两种格式的地址: SomeHouse, Holbrook, Belper, Derbyshire, DE56 0RR 及 该数字仅出现在右端,始终在括号中,并且始终为12位数字 我正在尝试让正则表达式匹配两个组。。。地址和号码(如果有) 这是一个令人头痛的问题(对于我没有经验的自己来说),因为我无法让我的表达同时适用于这两种类型的称呼 我有 (?<address>.*)(?<bracketsandnum>\((?<num>[0-9]{12})\))$
SomeHouse,
Holbrook,
Belper,
Derbyshire,
DE56 0RR
及
该数字仅出现在右端,始终在括号中,并且始终为12位数字
我正在尝试让正则表达式匹配两个组。。。地址和号码(如果有)
这是一个令人头痛的问题(对于我没有经验的自己来说),因为我无法让我的表达同时适用于这两种类型的称呼
我有
(?<address>.*)(?<bracketsandnum>\((?<num>[0-9]{12})\))$
(?使用?
将第二组设置为可选,并在第一组中使用非贪婪匹配(通过使用?
修改*
)。类似于以下内容:
^(?<address>.*?)(?:\((?<num>\d{12})\))?$
^(?.*?(:\(?\d{12})\)$
@Martinho,Qtax,我可以正式将'something'升级为'exactly-like'!非常感谢。请您解释一下?:bit的意思吗?@user:它是一个非捕获组。这意味着它捕获的部分在匹配中不会有组。
。我想@Qtax假设您不在乎abo捕获括号,只捕获数字。如果您确实需要它们,请继续创建一个命名组,就像您在原始正则表达式中所做的那样。@Martinho,再次感谢您。我现在真的理解了这个小家伙。Qtax是对的,那些括号是不需要的。
^(?<address>.*?)(?:\((?<num>\d{12})\))?$