donglefu6195 2010-10-06 11:21
浏览 90
已采纳

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

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 :|

  • 写回答

2条回答 默认 最新

  • doupi8598 2010-10-06 11:26
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 BP神经网络控制倒立摆
  • ¥20 要这个数学建模编程的代码 并且能完整允许出来结果 完整的过程和数据的结果
  • ¥15 html5+css和javascript有人可以帮吗?图片要怎么插入代码里面啊
  • ¥30 Unity接入微信SDK 无法开启摄像头
  • ¥20 有偿 写代码 要用特定的软件anaconda 里的jvpyter 用python3写
  • ¥20 cad图纸,chx-3六轴码垛机器人
  • ¥15 移动摄像头专网需要解vlan
  • ¥20 access多表提取相同字段数据并合并
  • ¥20 基于MSP430f5529的MPU6050驱动,求出欧拉角
  • ¥20 Java-Oj-桌布的计算