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