带有正则表达式的审查文本

Zac*_*nce 6 text-processing regular-expression

我目前正在运行此命令来审查缩进的待办事项列表。

sed -e 's/\(\s\+- \)\(.*\)/\1XXX/g'
Run Code Online (Sandbox Code Playgroud)

很棒,只是我希望Xs 的数量与匹配字符的数量相匹配。我怎么做?正确的方法并不特别需要使用sed。

当前示例输入:

- Hello World
  - Earth
Run Code Online (Sandbox Code Playgroud)

输出:

- XXX
  - XXX
Run Code Online (Sandbox Code Playgroud)

期望:

- XXXXXXXXXX
  - XXXXX
Run Code Online (Sandbox Code Playgroud)

Tob*_*ght 3

Perl 解决方案:

perl -pe 's/^( *- )(.+)/$1."X"x length($2)/e'
Run Code Online (Sandbox Code Playgroud)

这用于获取替换中"X" x length($2)正确的 s 数量。X

测试输入:

- Hello World
  - Earth
This is not - censored
Run Code Online (Sandbox Code Playgroud)

输出:

- XXXXXXXXXXX
  - XXXXX
This is not - censored
Run Code Online (Sandbox Code Playgroud)