正则表达式字母数字单词

时间:2014-03-21 19:28:42

标签: regex

我想在字符串中找到所有字母数字的单词。我能够得到所有这些的匹配。但与此同时,我还有其他一些词也与这些不是字母数字的词匹配。

ABC123 123ABC 1abcabc1 11abc22dcf abcabc22

2 个答案:

答案 0 :(得分:2)

试试这个 -

(?:[0-9][^ ]*[A-Za-z][^ ]*)|(?:[A-Za-z][^ ]*[0-9][^ ]*)

解释 -
纯字母数字字符至少包含一个字母和数字实例。因此,如果你单词的第一个字母是字母,那么在单词的其余部分,必须至少有一个数字。对于其他方面也是如此。

正则表达式包含2个部分,由" |"(正则表达式相当于OR)分隔 第1部分 - > [0-9][^ ]*[A-Za-z][^ ]*
检查单词的第一个字符是否为数字([0-9]),然后在单词的其余部分,尝试查找字母表([A-Za-z]) 。

第2部分 - > [A-Za-z][^ ]*[0-9][^ ]*
这与第1部分相同,但数字和字母会改变位置。检查第一个字母,如果它是一个字母,那么该单词的其余部分必须有一个数字。

正则表达式here的更详细解释 演示Here

答案 1 :(得分:1)

你可能会尝试类似的事情:

[a-zA-Z0-9]+

何时应该使用:

(?=\S*[0-9])(?=\S*[a-zA-Z])[a-zA-Z0-9]+

后者断言匹配包含数字和字母,确保它实际上是字母数字匹配。这适用于整个字符串,以查找每个字母数字“单词”。