繁体   English   中英

正则表达式,如何匹配以非数字开头的行

[英]Regex, how to match lines starting with non digits

我是正则表达式的初学者。 当我尝试在此测试文件中以非数字字符开头的 select 行时,

1 2012-01-01 12:00:00
2 2013-01-01 13:00:00
3 2012asdas
4 asdasasad

我尝试了/^\D并得到了我想要的:

1 2012-01-01 12:00:00
2 2013-01-01 13:00:00
3 2012asdas
4 **a**sdasasad

然后,我很好奇我是否可以用/^[^\d]做同样的工作,但它只是匹配所有的行

1 **2**012-01-01 12:00:00
2 **2**013-01-01 13:00:00
3 **2**012asdas
4 **a**sdasasad

然后我尝试了/^[^\w]并得到了相同的结果。 因此,我在想正则表达式的哪一部分是错误的。 这个问题可能是微不足道的,但感谢任何反馈。

这是一个解释:

  • \d匹配 1 个数字
  • \D匹配任何不是数字的东西
  • \d+匹配多个数字
  • [\d]匹配括号中的所有数字字符
  • [^\d]匹配所有不在括号中的字符,所以没有数字
  • [\D]产品与上述结果相同
  • ^匹配行首

所以^\D+将匹配以非数字开头的行

你应该在这里尝试这个非常强大的正则表达式测试器: https://regex101.com/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM