【问题标题】:Match a string that has lowercase char followed by the same character in uppercase匹配具有小写字符后跟相同大写字符的字符串
【发布时间】: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

标签: regex sed


猜你喜欢
  • 2021-01-06
  • 2010-11-08
  • 1970-01-01
  • 2021-10-14
  • 2013-05-03
  • 2014-09-07
  • 2019-08-08
  • 2011-09-28
相关资源
最近更新 更多