正则表达式(RegEx) - 一个字符串变量长度

时间:2013-06-25 20:51:23

标签: c# .net regex

我的应用程序收到一个长度可变的条形码。它可能是5,9,12或14.我正在尝试使用这样的东西:\w{14}|\w{12}|\w{9}|\w{5}

正则表达式不正确。是否有不同长度的正则表达式? 或者组合不同正则表达式的正确方法是什么?

注意:我使用正则表达式的原因很长。

2 个答案:

答案 0 :(得分:5)

这是你在找什么?

\b(\w{14}|\w{12}|\w{9}|\w{5})\b

Regular expression image

它将匹配字符串中长度为14,12,9或5个字符的所有单词。然后,您可以检查这些匹配项。请在此处查看包含多个匹配项和不匹配项的字符串:http://www.debuggex.com/r/V9T8nHp7ep6yuJow

如果您只是希望检查整个字符串是否匹配,请使用此选项(以检查它是否以您的某个选项开头和结尾):

^(\w{14}|\w{12}|\w{9}|\w{5})$

此外,我见过的所有条形码都只包含数字,这也是你的情况......你应该将所有\w替换为\d,这与{ [0-9]

答案 1 :(得分:3)

很可能你想要这个:

"^(\w{14}|\w{12}|\w{9}|\w{5})$"

注意不同长度选项的分组,包括字符串指示符的开头和结尾。如果没有这些,如果\w{5}存在于字符串中的任何位置,则任何匹配。