【发布时间】:2022-01-17 21:10:45
【问题描述】:
考虑以下字符串:
"via caporale degli zuavi 278a , 78329"
和
"autostrada a1 km - 47"
我正在寻找可以存在(第一个示例)或不存在(第二个示例)的特定序列
特别是,我正在寻找一个可以长 1 到 4 位的数字序列,并且可以后跟一个字母,但在字符串中也不能有子字符串“km”。所以在我之前的例子中,“278a”是有效的,但其余的数字序列不是。
到目前为止,我所做的如下:
因为我知道任何包含“km”的字符串都是无效的,所以我应用了这段代码:
if(!stripped.ToLower().Contains("km"))
{
// apply Regex
}
else
// string not valid, move on
我知道这个正则表达式会给我所有的数字序列:Regex.Matches(t, @"\d+");,但这还不够。我该如何从这里开始?
编辑:为了进一步澄清,当一个数字序列后跟一个字母时,该字母必须是下一个字符(所以没有空格或其他任何东西)
Edit2:注意数字序列后面可以跟字母也可以不跟(所以278a和278一样有效)
【问题讨论】:
-
78329在第一个例子中有效吗? -
是否有多个匹配项?
-
@OlivierJacot-Descombes 否,因为有 5 个连续数字
-
@WiktorStribiżew 不,如果有序列它只有 1