5

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

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

注意:我使用正则表达式的原因由来已久。

4

2 回答 2

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]

于 2013-06-25T21:00:16.187 回答
3

你很可能想要这个:

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

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

于 2013-06-25T20:59:01.250 回答