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

发布于 2024-09-26 11:27:48 字数 630 浏览 1 评论 0原文

好吧,又来了。 我保证很快就会深入研究正则表达式:P

语言:PhP

问题: 如果字符串中存在某些坏词,则匹配并执行某些操作。 该单词不得包含在“更大的单词”内。我的意思是,如果我要搜索“rob”(抱歉,Rob,我不认为你是一个坏词),则“problem”这个词必须通过 我用谷歌

搜索了一下,但没有发现任何对我有好处的东西,所以,我想了这样的事情:

如果我将这个词与以下任何字符匹配:

  • ,
  • ;
  • :
  • (
  • +
  • -
  • [空白]

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

最后的问题是:

  1. 有更好的方法吗?
  2. 如果不是,那么考虑 [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:

  1. There's a better way to do it?
  2. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

中性美 2024-10-03 11:27:48

查找 \b (字边界):

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

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

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

Look up \b (word boundary):

Matches at the position between a word
character (anything matched by \w) and
a non-word character (anything matched
by [^\w] or \W) as well as at the
start and/or end of the string if the
first and/or last characters in the
string are word characters.

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

So: \brob\b matches rob, but not problem.

甲如呢乙后呢 2024-10-03 11:27:48

您可以使用 \b,请参阅全字边界

You can use \b, see Whole word bounderies.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文