【发布时间】:2022-06-12 20:45:37
【问题描述】:
应该匹配的字符串:
foObar
foobBar
不应匹配:
fOobar
foobbar
我尝试了以下但没有成功:
sed -nE '/([a-z])\U\1/p' <<<foObar
【问题讨论】:
-
据我所知,
sed不支持在搜索部分更改大小写。您可以改用 Perl:perl -ne 'print if /([a-z])\u\1/' ip.txt -
这个 perl 语句返回 "foobbar" 并且不应该。
-
你说得对,似乎它不适用于反向引用。试试
perl -ne 'print if /([a-z])(?!\1)(?i:\1)/' ip.txt。这也适用于 GNU grep:grep -P '([a-z])(?!\1)(?i:\1)' ip.txt