【问题标题】:PHP Regex does not react how I would wishPHP Regex 没有做出我希望的反应
【发布时间】:2014-10-16 16:00:46
【问题描述】:

我正在使用 PHP 正则表达式来查看我的字符串中是否存在模式。简而言之,我想要两个单词之一,后跟一个数字。所以,这是我的模式:

#(guitare|piano)[0-9]#

基本上,如果字符串包含单词“guitare”,我不希望它被匹配,只有当我有“guitare9”或“piano0”时

此时,如果我将此模式用于以下字符串:

J'aime la guitare9

preg_match() 的数组返回吉他和吉他9:http://www.phpliveregex.com/p/7tZ

我必须在我的正则表达式中更改什么以仅匹配 guitare9 ?

【问题讨论】:

    标签: php regex


    【解决方案1】:

    将正则表达式中的捕获组转换为非捕获组。因为preg_match 会在数组中显示匹配项以及捕获的字符串。通过将捕获组变为非捕获,您必须获得单个数组元素。

    #(?:guitare|piano)[0-9]#
    

    DEMO

    【讨论】:

    • 谢谢提醒,等了9分钟我忘了!
    猜你喜欢
    • 2021-11-16
    • 1970-01-01
    • 2022-01-08
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-24
    • 1970-01-01
    相关资源
    最近更新 更多