1
A
回答
4
这两种模式的含义不同。特别是,第一个将不匹配blah foobar
,但第二个将会。
断言消耗的零宽度正向超前断言((?= …)
)的内容是而不是。断言之后的任何文本在检查断言之前的正则表达式所搜索的同一点处开始匹配。
因此,正则表达式(?=.*foo\b)
其中串foo
正好出现在字边界之前的任何字符串匹配,但(?=.*foo)\b
含有foo
和在字边界开始的字符串相匹配。其次,这是一件非常奇怪的事情,而且不太可能是你想要的。
1
区别在于检查单词边界的位置:第一个单词边界必须在.*foo
之后,但第二个必须在.*foo
之前。看到这两个例子:
相关问题
- 1. 空$ OPTARG与getopts“b:”和''./script -b foo''
- 2. 宏foo的含义(a,b,;)
- 3. 在SQL Server FullText中使用'CONTAINS(Foo,“A”)或包含(Foo,“B”)与CONTAINS(Foo,'“A”或“B”')
- 4. memset(foo-> a + foo-> b,0,10)是什么意思?
- 5. + foo + vs。 foo。差异在PHP?
- 6. 差异VAR foo和变量$ foo的
- 7. 解释foo和\(FOO \)之间的差异
- 8. 如何向GHC证明(b〜Foo)?
- 9. `cat filename | grep -B 5 -C 5 foo`
- 10. 语法'foo(a)(b)`可能有用吗?
- 11. 我怎样才能DEF FOO [A]之间区分(XS:A *)和DEF FOO [A,B](XS:(A,B)*)?
- 12. 差= foo的
- 13. 如何使用JAXB解析<foo value1 =“a”value2 =“b”> value3</foo>?
- 14. Preg_replace:“foo”,“bar”,“foo bar”和“bar foo”
- 15. 差别新的Foo(
- 16. “foo”是“a - > b - > c”。 “foo。foo”也是“a - > b - > c”。 Haskell对待它们的速度是否完全相同?
- 17. var foo = foo ||警报(FOO);
- 18. * a = b和a =&b之间的差异?
- 19. <%= foo %>与$ {foo}
- 20. foo(a)(b)+ = x在Scala中如何工作?
- 21. Clojure中foo,:: foo,:: bar/foo和bar/foo之间的区别是什么?
- 22. 重写index.php?foo = bar & bar = foo到index.php?foo = bar&bar = foo
- 23. 可以区分foo [.2]和foo的Mathematica函数foo [.20]
- 24. 作为参数($ foo)和(foo $ foo)之间的区别
- 25. Rails 2.3.12:分别路由'GET/foo','PUT/foo'和'<any>/foo/bar'
- 26. 类foo,类foo()和类foo(object)之间的区别?
- 27. “struct foo *”和“foo *”之间的区别foo是一个struct吗?
- 28. 绝对(“/ foo”)和相对(“../foo”)文件名。什么是“foo”类别?
- 29. 哪个`if(!isset($ foo)OR(isset($ foo)AND $ foo == $ bar))`或`if(!isset($ foo)OR $ foo == $ bar)`更好?
- 30. 是`foo as? Foo“在kotlin中完全等价于foo?foo?
唉,沮丧,一个人去了我的头。 +1 – Sam