gpt4 book ai didi

regex - 简单的正则表达式 - 双引号之间用下划线替换空格并使所有字母小写

转载 作者:行者123 更新时间:2023-12-01 11:52:14 25 4
gpt4 key购买 nike

你能帮我用正则表达式来改变行吗

<string name="Final time">Final time</string>
<string name="After extra time">After extra time</string>

到线

<string name="final_time">Final time</string>
<string name="after_extra_time">After extra time</string>

所以双引号之间的空格用下划线代替,所有字母小写。

我将在 VIM 中使用此正则表达式进行搜索/替换。

最佳答案

通用方法:

:%s/\(<string name="\)\(\u\)\([^" ]\+\) \([^" ]\+\)/\1\l\2\e\3_\4/

这将替换所有字符串@name

  • 以大写字符 (\u) 开头,
  • 由两个空格分隔的单词 ( \([^" ]\+\) \([^" ]\+\)) 和
  • 组成
  • 将其替换为相应的小写字符 ( \l\2\e )。
  • 它还会用下划线替换空格。

要使@name 中的所有内容都小写,可以简化:

:%s/\(<string name="\)\([^" ]\+\) \([^" ]\+\)/\1\l\2_\3_\e/

要去除多个空格,请执行两个步骤。首先,将属性值设为小写:

:%s/\(<string name="\)\([^"]\+\)/\1\l\2\e/

然后,用下划线替换属性值中的每个空格

:%s/\(<string name="[^"]*\)\@<= /_/g

请注意 \@<=是 vim 表达积极回顾断言的方式。

关于regex - 简单的正则表达式 - 双引号之间用下划线替换空格并使所有字母小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10371574/

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