代码之家  ›  专栏  ›  技术社区  ›  Maximus

PHP查找不在regex中的单词

  •  1
  • Maximus  · 技术社区  · 15 年前

    /^[A-Za-z0-9-_\s]*$/ 在PHP中,允许数字、字母、空格、连字符和下划线。我想显示那些对正则表达式无效的匹配,例如“我的名字是布拉布拉赫!!!”应该给我“!!!”输出。

    4 回复  |  直到 15 年前
        1
  •  10
  •   Andy E    15 年前

    在character类中使用插入符号反转匹配并删除开头( ^ $ )字符:

    /[^A-Za-z0-9-_\s]+/
    

    http://php-regex.blogspot.com/2008/01/how-to-negate-character-class.html

        2
  •  2
  •   John Kugelman Michael Hodel    15 年前

    如果用空字符串替换所有匹配项,则会将不匹配的部分取回:

    preg_replace('/[A-Za-z0-9-_\s]+/', '', $string)
    

    注意我移除了锚 ^ $

        3
  •  0
  •   Jamie Wong    15 年前

    preg_replace("/^[A-Za-z0-9-_\s]*$/","","My Name is Blahblah!!!") // Output: "!!!"

    或者,如果你想要他们所有的分组

    preg_split("/^[A-Za-z0-9-_\s]*$/","","My Name is Blahblah!!!")

        4
  •  0
  •   Toto    15 年前

    您必须将hiphen-放在字符类的开头或结尾,或者对其进行转义,这样您的正则表达式将是:

    /[^-A-Za-z0-9_\s]+/
    

    /[^A-Za-z0-9_\s-]+/
    

    /[^A-Za-z0-9\-_\s]+/
    
    推荐文章