我的应用程序收到一个长度可变的条形码。它可能是 5、9、12 或 14。我正在尝试使用这样的东西: \w{14}|\w{12}|\w{9}|\w{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]
你很可能想要这个:
"^(\w{14}|\w{12}|\w{9}|\w{5})$"
注意不同长度选项的分组,由字符串指示符的开头和结尾包围。没有这些,如果\w{5}
字符串中的某个位置存在任何匹配项。