regex - sed 或 perl 仅当第一个内部单词匹配时才删除外部括号

标签 regex perl bash sed

使用 GNU sed,我需要删除像 (click here ....) 这样的括号短语,包括括号。 click here 后面的文本各不相同,但我需要删除整个外括号。

我已经尝试了以下多种变体,但我似乎无法找到正确的变体:

sed -e 's/\((click here.*[^)]*\)//'

编辑 愚蠢的是,我没有注意到括号字符串中间实际上经常有一个换行符,所以 sed 可能无法正常工作。示例:

(click here to
enter some text)

最佳答案

如果没有嵌套的括号,也许你可以尝试这样的事情:

sed -e 's/(click here [^)]*)//'

关于regex - sed 或 perl 仅当第一个内部单词匹配时才删除外部括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6155273/

相关文章:

Python - 在字符串中定位正则表达式匹配的位置?

java - 字母数字范围检查器 - B3 是否在 B1 中 :B10

javascript - 拒绝绝对无效的电子邮件地址的最不坏的正则表达式是什么?

regex - 为什么/^[a-zA-Z0-9]+@[a-zA-Z0-9]\.(com)|(edu)|(org)$/i 不能按预期工作

perl -//'' 是什么;在字符串末尾连接时在 Perl 中是什么意思?

regex - Perl 中捕获组的可选性和 "or"

windows - 我如何强制退出 Git Bash?

perl - 如何将多行处理/存储到从 perl 文件读取的单个字段中?

regex - 使用 awk 返回相应的列

bash - openssl enc -base64 -d 在一定长度后不解码字符串