将正则表达式与任何非字符或数字进行匹配
好吧,又来了。 我保证很快就会深入研究正则表达式:P
语言:PhP
问题: 如果字符串中存在某些坏词,则匹配并执行某些操作。 该单词不得包含在“更大的单词”内。我的意思是,如果我要搜索“rob”(抱歉,Rob,我不认为你是一个坏词),则“problem”这个词必须通过 我用谷歌
搜索了一下,但没有发现任何对我有好处的东西,所以,我想了这样的事情:
如果我将这个词与以下任何字符匹配:
- 。
- ,
- ;
- :
- !
- ?
- (
- )
- +
- -
- [空白]
我可以模拟对字符串内单个单词的检查。
最后的问题是:
- 有更好的方法吗?
- 如果不是,那么考虑 [all_that_char]word[all_that_char] 的正确正则表达式是什么?
预先感谢任何愿意提供帮助的人! 也许这是一个非常愚蠢的问题,但今天就是移动我们的神经元导致令人难以置信的头痛的那一天:|
Ok, here again.
I'll promise to study deeply the regular expression soon :P
Language: PhP
Problem:
Match if some badword exist inside a string and do something.
The word must be not included inside a "greater word". I mean if i'll search for "rob" (sorry Rob, i'm not thinking you're a badword), the word "problem have to pass without check.
I'd googled around but found nothing good for me. So, I thought something like this:
If i match the word with after and before any character of the following:
- .
- ,
- ;
- :
- !
- ?
- (
- )
- +
- -
- [whitespace]
I can simulate a check against single word inside a string.
Finally the Questions:
- There's a better way to do it?
- If not, which will be the correct regexp to consider [all_that_char]word[all_that_char]?
Thanks in advance to anyone would help!
Maybe this is a very stupid question but today is one of that day when move our neurons causes an incredible headache :|
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
查找
\b
(字边界):(http://www.regular-expressions.info/reference.html)
所以:
\brob\b
匹配rob
,但不匹配problem
。Look up
\b
(word boundary):(http://www.regular-expressions.info/reference.html)
So:
\brob\b
matchesrob
, but notproblem
.您可以使用
\b
,请参阅全字边界。You can use
\b
, see Whole word bounderies.