作者wawawa (哇哇哇○( ̄﹏ ̄)○)
看板RegExp
标题Re: [问题] 不包含连续字串XXX
时间Wed Jul 2 14:26:21 2008
※ 引述《ihs (新的昵称)》之铭言:
: 不好意思 找了好久都找不到答案 来问个笨问题
: 例如 PHP 的 preg_match ( $pattern , $subject , $matches )
: 如果要 match $subject 里不包含某「连续字串」的正规表示式要怎麽写?
: 像是有两句话 this is not ok 和 this is ok
: 要滤掉 not 只match > this is ok 这句
: 意思是有点像 /this is !not ok/ 的样子
: 我知道不包含n,o,t字元是[^not],我想问有排除连续字串这种表示法吗?
: 希望描述得不会太难懂..
: 谢谢!!
你需要了解的是 lookahead and lookbehind 的概念:
http://www.regular-expressions.info/lookaround.html
以你的范例来说,表示式可以写成这样:
/this is (?!not)ok/
这意思是,要比对 this、一个空白、is、一个空白,
後面不能出现 not、最後出现 ok。
说起来可能有点模糊,你可以看看上面这网页有详细说明
不然,oreilly 有出一本薄的正规表示式 pocket reference
买回来翻阅也是不错
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.127.47.125
1F:推 ihs:谢谢 我来看看~ 07/22 17:47