new Regex(@"^[a-zA-Z]+\b +\b[a-zA-Z]?\b +\b[a-zA-Z]+$")
这个匹配
John Smith John B Goode
我正在尝试针对以下情况修改此正则表达式:
12359 (John B? Goode) 10249? 之前的一些文字
有时名称出现在字符串末尾的数字之后,也可能出现在末尾的最终数字之前。
我试过了
new Regex(@"^|[0-9]+([a-zA-Z]+\b +\b[a-zA-Z]?\b +\b[a-zA-Z]+) *[0-9]*?$")
但这行不通,因为
^|[0-9]+只匹配数字而不是行首- 该组始终是一个空字符串,匹配类似
sometext 12354的内容(第一个数字不需要在行尾。
更新
这都是桥下的水,因为我在数据行的末尾发现了更多的名字,所以这行不通。
然而,我的问题的解决方案并不是将 OR 放在一个组中。
请您参考如下方法:
您需要用括号括起交替:
(^|[0-9]+)
你的表达等同于:
new Regex(@"^|()")
它总是匹配字符串的开头而不是其他任何内容。
