正则表达式修改 - 匹配可选破折号(PHP)

时间:2011-09-05 12:25:41

标签: php regex preg-match

我想问你如何修改那个正则表达式:

"/\b([A-Z]{2,}[0-9][0-9A-Z-\/]*)/is"

目前它只能匹配它,如果没有' - '。我想要达到的目标是,它可以匹配类似的东西,即

TGW-1234    

所以至少有两个字母后跟(可选)短划线然后(必需)数字。

3 个答案:

答案 0 :(得分:3)

在字母和数字之间使用-??表示可选

"/\b([A-Z]{2,}-?[0-9][0-9A-Z-\/]*)/is"

它位于允许出现在表达式中该点的角色之后,但实际上并不需要将其存在仍被视为成功匹配。

答案 1 :(得分:1)

"/\b([A-Z]{2,}-?[0-9][0-9A-Z-\/]*)/is"

答案 2 :(得分:1)

"/\b([A-Z]{2,}-?[0-9][0-9A-Z-\/]*)/is"
--------------^^ optional dash