繁体   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