gpt4 book ai didi

regex - PCRE正则表达式到SED

转载 作者:行者123 更新时间:2023-12-03 21:04:00 24 4
gpt4 key购买 nike

我正在尝试使用PCRE正则表达式并在SED中使用它,但是我遇到了一些问题。请注意,这个问题代表了一个更大的问题(如何将PCRE regex转换为可与SED一起使用),因此,该问题不仅涉及以下示例,还涉及如何在整个SED regex中使用PCRE regex。

本示例从一行中提取一个电子邮件地址,并将其替换为“[emailaddr]”。

echo "My email is abc@example.com" | sed -e 's/[a-zA-Z0-9]+[@][a-zA-Z0-9]+[\.][A-Za-z]{2,4}/[emailaddr]/g'

我尝试了以下替换正则表达式:
([a-zA-Z0-9]+[@][a-zA-Z0-9]+[\.][A-Za-z]{2,4})
[a-zA-Z0-9]+[@][a-zA-Z0-9]+[\.][A-Za-z]{2,4}
([a-zA-Z0-9]+[@][a-zA-Z0-9]+[.][A-Za-z]{2,4})
[a-zA-Z0-9]+[@][a-zA-Z0-9]+[.][A-Za-z]{2,4}

我尝试将sed的定界从s / find / replace / g更改为s | find | replace | g,如 here (stack overflow: pcre regex to sed regex)所述。

我仍然无法弄清楚如何在SED中使用PCRE regex,或如何将PCRE regex转换为SED。任何帮助都会很棒。

最佳答案

使用-r标志启用extended regular expressions的使用。 (而不是 OS X 上的-E)

echo "My email is abc@example.com" | sed -r 's/[a-zA-Z0-9]+@[a-zA-Z0-9]+\.[A-Za-z]{2,4}/[emailaddr]/g'

Ideone Demo

关于regex - PCRE正则表达式到SED,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24832458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com