我需要用一个同样长的单词列表替换一个单词列表.
例如,你有:"a","b","c","d","e","f"
并且您希望用每个单词的大写版本替换每个单词:"A","B","C","D","E","F"
我知道如何使用正则表达式找到每个字符串:(a\| b\| c\| d\| e\| f)
我知道你可以对每个单词进行全局替换.但是,当单词的长度变大时,这种方法将变得毫不夸张和不优雅.
有没有办法以某种方式进行一次全局替换?相近:
:%s/\(a\|b\|c\|d\|e\|f\)/INSERT_REPLACEMENT_LIST/
Run Code Online (Sandbox Code Playgroud)
我不确定这是否可行.
xxx <=> zzz
原文:
xxxyyyzzz
运行命令:
:s/???/???/
它成为了:
zzzyyyxxx
运行上面的相同命令:
:s/???/???/
回到原文:
xxxyyyzzz
就像切换案例(〜)
aBCdeFg <=> AbcDEfG
我有以下情况:
有一个工具可以从Web界面获取XSLT并将XSLT嵌入到XML文件中(应该有人被解雇)."不幸的是"我在一个法语国家工作,因此XSLT有很多带有重音符号的单词.当XSLT嵌入到XML中时,该工具会将所有重音转换为其HTML代码(Iacute,igrave等...).
我的Perl代码正在从XML中检索XSLT,并使用Xalan命令行工具针对其他XML执行它.每次XSLT中都有一些重音时,Xalan工具会抛出异常.
我最初做一个正则表达式来改变XSLT中的所有重音:
# the & is omitted in the codes becuase it will be rendered in the page $xslt =~s/Aacute;/Á/gso; $xslt =~s/aacute;/á/gso; $xslt =~s/Agrave;/À/gso; $xslt =~s/Acirc;/Â/gso; $xslt =~s/agrave;/à/gso;
但这样做意味着我必须为每个重音代码写一个正则表达式....
我的问题是,如果没有为每个代码编写正则表达式,有没有这样做呢?(认为这是唯一的解决方案,想要呕吐.)
顺便说一句,该工具是TeamSite,它很糟糕.....
编辑:我忘了提到我需要一个Perl唯一的解决方案,安全性不允许我安装他们没有检查一周左右的任何类型的库:(