我的应用程序收到一个长度可变的条形码。它可能是5,9,12或14.我正在尝试使用这样的东西:\w{14}|\w{12}|\w{9}|\w{5}
正则表达式不正确。是否有不同长度的正则表达式? 或者组合不同正则表达式的正确方法是什么?
注意:我使用正则表达式的原因很长。
答案 0 :(得分:5)
这是你在找什么?
\b(\w{14}|\w{12}|\w{9}|\w{5})\b
它将匹配字符串中长度为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}
存在于字符串中的任何位置,则任何匹配。