将正则表达式与任何非字符或数字匹配

时间:2010-10-06 11:21:38

标签: php pattern-matching

好的,再来一次。 我保证很快会深入研究正则表达式:P

语言:PhP

问题: 匹配字符串中是否存在某些badword并执行某些操作。 这个词必须不包含在“更大的词”中。我的意思是,如果我要搜索“抢劫”(抱歉Rob,我不认为你是一个坏词),“p rob lem”这个词必须通过没检查。

我在谷歌上搜索但发现对我没有任何好处。所以,我想到这样的事情:

如果我在以下任何字符之前和之前匹配该字词:

  • ;
  • +
  • -
  • [空白]

我可以模拟对字符串中单个单词的检查。

最后问题:

  1. 有更好的方法吗?
  2. 如果没有,哪个正确的正则表达式要考虑 [all_that_char] 单词 [all_that_char]

提前感谢任何人都会帮忙! 也许这是一个非常愚蠢的问题,但今天是那天之一,当我们的神经元移动引起令人难以置信的头痛时:|

2 个答案:

答案 0 :(得分:1)

您可以使用\b,请参阅Whole word bounderies

答案 1 :(得分:1)

查找\b(字边界):

  

匹配单词之间的位置   字符(任何与\ w匹配的)和   一个非单词字符(任何匹配的字符   通过[^ \ w]或\ W)以及   如果是,则开始和/或结束字符串   中的第一个和/或最后一个字符   字符串是单词字符。

(http://www.regular-expressions.info/reference.html)

所以:\brob\b匹配rob,但不匹配problem