PHP Regex查找包含字母和数字的单词

时间:2012-05-03 21:14:42

标签: php regex

我正在开发一个解析广告的PHP脚本,我想添加一个正则表达式来查找特殊代码,这些代码可以是任意长度的单词,但包含任意顺序或任意长度的字母和数字。我只是不确定适当的语法是什么。我发现模式允许字母或数字,或者需要特定的字母和数字模式,但不是几乎随意的混合。

非常感谢任何建议。

样品:购买小部件20%折扣,使用周五的优惠码WID2010

理想情况下,我想要检测单词“WID010”并使用它来标记该项目以供其他用途。但是,这种格式不一定一致。所有可以预测的代码总是由至少一个字母和一个数字组成,没有空格或标点符号。

2 个答案:

答案 0 :(得分:14)

这样的代码要么由

组成
  • 任意数字(最少1个)字母后跟一个数字和任意数字(最少0个)的字母和/或数字
  • 或任意数字(最少1)的数字后跟一个字母和任意数字(最少0)的字母和/或数字

写为捕获组:

((?:[a-zA-Z]+[0-9]|[0-9]+[a-zA-Z])[a-zA-Z0-9]*)

答案 1 :(得分:5)

类似的东西:

(?=\w*[a-z])(?=\w*[0-9])\w+

这预示着一个字母,然后是一个数字,并将字母和数字(字)与每个字母中的至少一个匹配。

ideone