PHP正则表达式的反应与我所希望的不同
我正在使用PHP正则表达式查看字符串中是否有模式。简单地说,我想要两个单词中的一个,后跟一个数字。所以,我的模式是:PHP正则表达式的反应与我所希望的不同,php,regex,Php,Regex,我正在使用PHP正则表达式查看字符串中是否有模式。简单地说,我想要两个单词中的一个,后跟一个数字。所以,我的模式是: #(guitare|piano)[0-9]# 基本上,如果字符串包含单词“guitare”,我不希望它被匹配,只要我有“guitare9”或“piano0” 此时,如果我对以下字符串使用此模式: J'aime la guitare9 preg_match()的数组返回guitare和guitare9: 我必须在正则表达式中更改什么才能只匹配吉他9?将正则表达式中的捕获组转换为
#(guitare|piano)[0-9]#
基本上,如果字符串包含单词“guitare”,我不希望它被匹配,只要我有“guitare9”或“piano0”
此时,如果我对以下字符串使用此模式:
J'aime la guitare9
preg_match()的数组返回guitare和guitare9:
我必须在正则表达式中更改什么才能只匹配吉他9?将正则表达式中的捕获组转换为非捕获组。因为
preg_match
将在数组中显示匹配项以及捕获的字符串。通过将捕获组转换为非捕获组,您必须获得单个数组元素
#(?:guitare|piano)[0-9]#
谢谢你提醒我,我等了9分钟,却忘了!