簡體   English   中英

為什么此正則表達式[^ \\ /] \\ d {4}與行首的4位數字不匹配?

[英]Why does this regex [^\/]\d{4} not match a 4 digit number at the begining of a line?

模式[^\\/]\\d{4}適用於2014(i)01/01/2015但不適用於2014(i)因為它是文本文件中的第一項。

regexstorm中的樣本

您要在數字前尋找一個字符 ,並且在行/字符串的開始處沒有字符。 正如@JonSkeet在評論中提到的那樣,因為在行首找不到數字前的字符,所以[^\\/]消耗了第一位數字,因此剩余數字位數與\\d{4}不匹配。 也就是說,您正在尋找:

(?<!\/)\d{4}
  • (?<!\\/)在后面的否定表示 ,確保數字前沒有/ (斷言,不消耗字符)

現場演示

或匹配前面的字符沒有問題:

(?:^|[^\/])\d{4}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM