发布于 2021-11-02 07:07:17
尝试删除^和$
\\d{4}-\\d{2}-\\d{2}^匹配行的开头,$匹配行的末尾。所以第二个条目在开始之后和结束之前有",它不匹配。
根据您的语言,不需要双反斜杠(\\):
\d{4}-\d{2}-\d{2}加倍反斜杠用于逃避目的。
发布于 2021-11-02 07:40:32
使用POSIX字符类
你没有提到语言,所以我不知道你为什么要逃避你的反斜杠字符。如果您正在寻找一个可移植的解决方案,您可以使用POSIX字符类来实现这一点,而不是使用\d原子,这个原子(虽然现在相当常见)肯定不是通用的。
例如,这个锚定表达式:
^[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}$将与我所知道的任何扩展正则表达式引擎相匹配,包括egrep、pcregrep、Ruby、GNU、GNU (带有-r标志)以及其他引擎。例如:
$ echo "2021-11-10" | egrep '^[[:digit:]]{4}-[[:digit:]]{2}-[[:digit:]]{2}$'
2021-11-10注意事项
{}长度原子的引擎(例如,没有-E标志的BSD )。https://stackoverflow.com/questions/69806492
复制相似问题