我正在寻找一些帮助匹配另一个字符串中的4或5位数字符串。
数字前面有" JC"但格式不一致。
示例:
JC1234
JC 1234
J.C1234
J.C 1234
J/C1234
J/C 1234
J C1234
J C 1234
J和C之间的字符可以是任何字符或空格。
我将不胜感激。
谢谢
答案 0 :(得分:1)
您可以使用:
J[./ ]?C ?\d+
请参阅regex demo。
<强>解释强>
J
匹配文字字符[./ ]?
可选地匹配句点,斜杠或空格C
与C ?
匹配可选空格\d+
匹配数字 要在C#中使用它,您可以像这样迭代(或使用Matches
)
Regex myRegex = new Regex(@"J[./ ]?C ?\d+");
Match matchResult = myRegex.Match(yourString);
while (matchResult.Success) {
// do something with matchResult.Value
matchResult = matchResult.NextMatch();
}
答案 1 :(得分:1)
您可以使用此正则表达式仅捕获JC前面的数字。
J.?C.?(\d{4,5})
<强>解释强>
J
匹配文字J。.
匹配除换行符之外的任何字符。?
在点字符作为可选字符之后。C.?
匹配C
和以下可选字符。(\d{4,5})
捕获4到5之间的数字。答案 2 :(得分:1)
我会使用这个正则表达式:/J\W?C\s?(\d{4,5})/
:
/
J\W?C # J + single non-word character (optional) + C
\s? # optional single space
(\d{4,5}) # 4 or 5 digits
/x
答案 3 :(得分:0)
如果您只对这些字符串中的数字提取感兴趣,那么您只需使用\ d +:
var regex = new Regex(@"\d+");