gpt4 book ai didi

regex - 仅替换特定字符串中的字符

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:44 24 4
gpt4 key购买 nike

我需要将 html 文件中的每个“_”替换为“-”,但仅在标签中且仅在“name”属性中。

所以每一个:

<a name="menu_portlet_test"> or <a name="whatever_is_here">

应该变成这样:

<a name="menu-portlet-test"> and <a name="whatever-is-here">

无法弄清楚如何强制像 sed/awk 这样的东西来做。帮助!

最佳答案

sed ':a
s/\(<[^>]* name="[^"]*\)_\([^"]*"\)/\1-\2/g;ta' YourFile

应该完成你们大部分的工作。由于顶级 html 的可能性并不完美,但应该是 99.9% 可以

解释

s//g

  • 搜索模式 ( < 后跟任何非 > ([^>] ) followed by name="followed by (any non "( [^"] ) ) [ as group 1] followed by < em> [so first between quote after name=] followed by ( any non "( [^"]* ) followed by "`) [作为第 2 组]
  • 将其替换为第 1 组的内容,然后是 -其次是第2组的内容
  • g对线上发生的任何事情都这样做。此更改 1 _ per name=""但在该行的任何 name= 上。 <... name="bla_bla_bla"> ... <... name="other_bla_bla"> ...更改为 <... name="bla-bla_bla"> ... <... name="other-bla_bla"> ...

ta

  • 如果之前的s//发生变化,用修改后的内容重做同样的 Action (实际上它是一个 if/goto 标签 :a )

关于regex - 仅替换特定字符串中的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25762518/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com