使用 Grep 查找和替换 TextWrangler

使用 Grep 查找和替换 TextWrangler

我希望有人能帮忙。

-我需要更改包含以下内容的任何行中的符号:,但仅限于以以下内容开头的行<name>

例如

<name>CT Special Forces 2 - Back in the Trenches</name>

将更改为:

<name>CT Special Forces 2: Back in the Trenches</name>

我知道我可以在 TextWrangler 中使用标准查找和替换,但是有多行相同的文本,所以我只想更改以 符号开头的每一行,<name>同时-保留:其余文本?

最好删除-符号前的 [空格],这样冒号就会移动到单词末尾,就像我上面的例子一样!

使用 TextWrangler 可以实现这一点吗?如果不行,有人可以推荐其他可以实现这一功能的软件吗?

答案1

以下是使用 Notepad++ 的解决方案:

  • Ctrl+H
  • 找什么:<name>(?:(?!</name>).)*?\K\h+-
  • 用。。。来代替::
  • 查看 相符
  • 查看 环绕
  • 查看 正则表达式
  • 取消选中 . matches newline
  • Replace all

解释:

<name>              # opening tag
(?:                 # non capture group
    (?!</name>)     # negative lookahead, make sure we haven't a closing tag after
    .               # any character
)*?                 # end group, may appear 0 or more times, not greedy
\K                  # reset operator, forget all we have seen until this position
\h+                 # 1 or more horizontal spaces
-                   # a hyphen

屏幕截图(之前):

在此处输入图片描述

屏幕截图(之后):

在此处输入图片描述

相关内容