匹配包含至少一个字母和至少一个数字的单词

时间:2017-11-15 22:24:18

标签: regex posix

我是regex的新手,但我花了最近两天的时间进行研究,并且我也在这个和其他网站上尝试了很多类似的查询。

我想找到一个表达式(POSIX ERE),它会找到包含至少一个字母和至少一个数字的整个单词。具体来说,我想捕获所有这些:

B / DIN /1分之37 DU / 32.Abb.31 P / NA.17 O / DIN /八分之二千〇一十七 22 / N.Abb.2

我尝试过很多东西,并且在这个过程中设法让我的软件崩溃了几次,但仍然没有。我的一个问题是我不知道如何对我的字符串进行短语,因此它会找到符合条件的整个单词,而不仅仅是单词中的字符串。

非常感谢能帮助我的人!

1 个答案:

答案 0 :(得分:0)

我假设单词是由空格分隔的。在这种情况下,具有数字和字母的单词可以分为两个正则表达式:

  • 0个或更多非空白字符,后跟一个字母,后跟0个或更多非空白字符,后跟一个数字,后跟0个或更多非空白字符
  • 以上,但数字和字母交换。

非空格字符匹配确保捕获整个单词。

那些转化为以下正则表达式:

  • \S*[A-Za-z]\S*[0-9]\S*
  • \S*[0-9]\S*[A-Za-z]\S*

将它们组合起来得到最后的表达式:

(\S*[A-Za-z]\S*[0-9]\S*|\S*[0-9]\S*[A-Za-z]\S*)