0
Q
正則表達式向前看
A
回答
3
因爲向前看是斷言,並且它們不消耗任何字符。
(?=\S*\d)
當你寫正則表達式這樣的,它檢查如果它包含零個或多個非空格後面跟着一個數字。但是這些字符不會被正則表達式引擎使用。指針保持在同一位置。
例
hello123
|
This is the initial position of pointer. It the checking starts from here
hello123
|
(?=\S*\d). Here it matches \S
hello123
|
(?=\S*\d)
This continues till
hello123
|
(?=\S*\d) Now the assertion is matched. The pointer backtracks to the position from where it started looking for regex.
hello123
|
Now you have no more pattern to match. For the second version of the regex, the matching then begins from this postion
是那麼有
(?=\S*\d)(\S{6,16})
這裏的區別,
(?=\S*\d)
這部分做的檢查。我再說一遍,這部分不會消耗任何字符,它只是檢查。(\S{6,16})
該部分消耗輸入字符串中的字符。這是至少消耗6
非空格字符和最多16
字符。
相關問題
- 1. 負向前看去正則表達式
- 2. java FilenameFilter正則表達式(向前看)
- 3. Perl的正則表達式向前看
- 4. 正則表達式與向前看和向後看
- 5. 命名爲正則表達式,向前看和向後看
- 6. 正則表達式與向前看,看看屁股
- 7. Vim正向超前正則表達式
- 8. python正則表達式向前看正面+負面
- 9. 查看正則表達式R前
- 10. 正則表達式正面看後面的正則表達式反向匹配?
- 11. PHP正則表達式負向前瞻
- 12. 在正則表達式中積極向前看嗎?
- 13. R向前看正則表達式中的貪婪
- 14. Python正則表達式向前看後面
- 15. PCRE:(+)和( - )向前看/後面(正則表達式)
- 16. 正則表達式PHP:向前看兩次
- 17. 正則表達式沒有結尾,沒有向前看或向後看
- 18. 正則表達式:前(
- 19. 正則表達式前瞻
- 20. 正則表達式反向
- 21. .NET使用正則表達式後面看看/超前
- 22. JS正則表達式是否會看起來向後看?
- 23. 爲什麼正負向前看正則表達式是不是在甲骨文
- 24. 正則表達式(正則表達式)
- 25. 正則表達式(正則表達式)
- 26. 正則表達式(正則表達式)
- 27. 代碼匹配規則的正則表達式前向引用
- 28. 正則表達式多正前瞻組
- 29. 正則表達式正向前查找故障
- 30. 的Javascript正則表達式正向前查找
哦,這說明了很多,我認爲展望未來的工作是找到匹配並停止在已找到匹配的位置。所以這意味着斷言不能單獨使用,因爲它們只執行檢查並返回到開始位置。我們需要一個也消耗字符的正則表達式。 –
@JaymitDesai你明白了。它的表現正如名稱所示。預見是否匹配發生。尋找並不意味着:) – nu11p01n73R
非常感謝你! :) –