目前我正在使用此正则表达式
private string DigExp = @"[^\d]";
那样:
Regex.Match(Address, DigExp, "")
虽然字符串地址通常包含字符和数字.. 让我们说如果地址是 “ipsum lorem 30/9”或“ipsum lorem 309”在两个例子中我仍然得到309。我需要两个正则表达式来解决它,一个匹配第一个数字直到/如果存在,另一个匹配第二个应该在字符串结尾之后/可能根本不存在。
我需要将地址编号分隔为带有/
的正则表达式组 你可以指导我实现我的目标吗? 感谢。答案 0 :(得分:1)
您可以轻松地分为两组:
(\d+)/?(\d*)
答案 1 :(得分:1)
尝试使用此模式:
([\d\/\d]+|\d+)
答案 2 :(得分:1)
通过使用组,您可以使用以下正则表达式来隔离地址字符串的不同部分。以下将地址分为所有单词以及可选斜杠之前和之后的数字:
((?:[a-zA-Z]+\s)*)([\d]+)(?:(?:\/)(\d+))?
例如:"ipsum lorem 30/9"
变为:
匹配#0 长度:16范围:1-16
ipsum lorem 30/9
第1组长度:12
ipsum lorem
第2组长度:2
30
第3组长度:1
9
注意:以下正则表达式增加了匹配第四组数字后的单词的功能:
((?:[A-ZA-Z] + \ S))([\ d] +)(?:(?:/)(\ d +))((?:?\ S [一个-ZA-Z] +))
答案 3 :(得分:0)
尝试:[a-zA-Z\s]*([\d]*)\/?([\d]*)?
。这将获得第一组中的第一部分以及第二组/
之后的任何内容。