我在PHP中使用了正则表达式/^[A-Za-z0-9-_\s]*$/
,它允许使用数字,字母,空格,连字符和下划线。我想显示那些对正则表达式无效的比赛,例如“我的名字是布拉比!!!”应该给我“!!!”输出。PHP查找不在正则表达式中的词
回答
使用插入符号符号的字符类里面反转匹配并删除启动(^
)和结束($
)字符:
/[^A-Za-z0-9-_\s]+/
http://php-regex.blogspot.com/2008/01/how-to-negate-character-class.html
你想摆脱那些锚,并将'*'改成'+'。 OP正试图从字符串中抽取匹配,而不是匹配整个事情。 – 2010-07-21 14:11:06
@Alan:是的,开始和结束的锚点都消失了。感谢编辑提示'+'上的提示。 – 2010-07-21 15:01:27
如果更换所有与比赛空串然后你会得到不匹配的部分:
preg_replace('/[A-Za-z0-9-_\s]+/', '', $string)
这将工作对于任何任意的正则表达式,但对于你的具体正则表达式@安迪的解决方案更简单。
请注意,我删除了锚点^
和$
以完成此项工作。
您应该将'*'改为'+'。否则,你会浪费很多时间用什么都不换。 ;) – 2010-07-21 14:06:15
preg_replace("/^[A-Za-z0-9-_\s]*$/","","My Name is Blahblah!!!") // Output: "!!!"
或者,如果你想他们的所有分组
preg_split("/^[A-Za-z0-9-_\s]*$/","","My Name is Blahblah!!!")
你必须把hiphen - 在开始时或在字符类的末尾或逃避它,所以你的正则表达式是:
/[^-A-Za-z0-9_\s]+/
或
/[^A-Za-z0-9_\s-]+/
或
/[^A-Za-z0-9\-_\s]+/
- 1. Php使用正则表达式在文本中查找单词
- 2. 正则表达式在PHP查找单词
- 3. PHP的正则表达式查找单词串
- 4. 正则表达式查找和PHP
- 5. 正则表达式来查找不同顺序的单词
- 6. 查找正则表达式
- 7. PHP的正则表达式匹配词
- 8. Python正则表达式查找单词与其他词分开
- 9. 正则表达式寻找单词
- 10. 查找所有单词,而不使用正则表达式
- 11. 在正则表达式中查找两个单词之间的词
- 12. PHP:在html元素中查找类的正则表达式
- 13. Python的正则表达式查找单词的文字
- 14. 分词正则表达式
- 15. 正则表达式查找包含在“”
- 16. Python的正则表达式查找单词
- 17. 正则表达式来查找以冒号开头的单词
- 18. JavaScript的正则表达式来查找单词串
- 19. 查找括号内的单词 - 正则表达式+ Ruby
- 20. 查找严格以$开头的单词,正则表达式C#
- 21. 用于查找项目中所有正则表达式的正则表达式
- 22. Eclipse查找和替换正则表达式不工作与“(?=正则表达式)”?
- 23. 正则表达式来查找公式
- 24. 查找单词开始于正则表达式中的特定单词
- 25. 在查询中查找所有表名的正则表达式
- 26. 在正则表达式的词停止
- 27. 是正则表达式中的'$'查找break行或不在c#
- 28. 正则表达式在PHP
- 29. 正则表达式在PHP
- 30. 正则表达式在PHP
@ jason4:你需要有这个问题的任何进一步的帮助? :-) – 2010-09-02 16:56:41
感谢Andy E,胡萝卜总是适合我:) – Maximus 2010-09-17 23:15:03