【发布时间】:2021-04-20 10:12:59
【问题描述】:
目前,我有一个以下正则表达式。它应该匹配我正在回显的字符串:
echo "TBGFSGFI22800_D_REP_D_RISIKOEINHEIT" | grep -E 'TBGFSGFI\d\d\d\d\d[A-Za-z_]{1,100}'
它在我的 Mac 上的 OsX 和 Notepad++ 中按预期工作,但在 Windows 的 Bash (MINGW64) 中我得到一个空字符串。如何使用带有标志的 grep,或者我应该如何重写正则表达式以匹配模式?
我的 grep 版本是 3.1。重击:4.4.23(1)
提前感谢您的帮助!
【问题讨论】:
-
\d实际上不是有效的 POSIX ERE 构造,请使用-P而不是-E。 -
谢谢,下面的作品:echo
"TBGFSGFI22800_D_REP_D_RISIKOEINHEIT" | grep -Poz 'TBGFSGFI\d\d\d\d\d[A-Za-z_]{1,100}' -
@WiktorStribiżew 你能回答问题而不是评论吗?我会将其标记为答案:)
-
我发布了答案。
标签: regex windows bash grep mingw-w64