【问题标题】:PHP Regular Expression Improvement 2.0PHP正则表达式改进2.0
【发布时间】:2011-12-06 23:19:36
【问题描述】:

大家好

感谢 @FailedDev 我目前有下面的正则表达式,它在 preg_match 中用于喊话框。我在这个问题中试图实现的是允许正则表达式不区分大小写,并使其能够允许在“关键字”中使用空格,在本例中为 fred。

/(?<=^|\s)(?:\bfred\b|\$[$\w]*fred\b)/x


有关背景信息,请参阅参考链接。

Reference


感谢您对此提供的任何帮助。


更新:感谢一些有用的信息,我想出了以下正则表达式,可以满足我的需要,尽管我觉得它不是最有效的解决方案。

~(?:(?<=\s|^)[$\S]*|\b)f+(?:\.+|\s+)?r+(?:\.+|\s+)?e+(?:\.+|\s+)?d+(?:\.+|)?\b~i

【问题讨论】:

    标签: php regex preg-match


    【解决方案1】:

    如果您想让它不区分大小写,请使用/i modifier

    要允许额外的空白,请使用 \s* 表示可变数量的空白字符,或使用 [ ]? 表示单个 optional 空格。

    有关教程,另请参阅preg_matchPCRE syntax overviewhttp://regular-expressions.info/ 的手册。另请查看参考问题Is there anything like RegexBuddy in the open source world? 以获取有助于制作正则表达式的工具列表。还有some useful online tools

    【讨论】:

    • 不,不是真的。这附近有更多有能力的人。我只是喜欢超链接。
    • 感谢您的回复。根据您提供的信息,我想出了以下内容,虽然我觉得这不是最有效的解决方案,但它是一个有效的解决方案:~(?:(?<=\s|^)[$\S]*|\b)f+(?:\.+|\s+)?r+(?:\.+|\s+)?e+(?:\.+|\s+)?d+(?:\.+|)?\b~i
    • @Matthew:不用你的?: 组,只需使用一个字符类[.\s]*
    • 感谢您的提醒 :)
    猜你喜欢
    • 2012-01-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    相关资源
    最近更新 更多