使用Windows PowerShell,我试图通过附加后缀替换大字符串中所有出现的某个字模式。
$string = "The string that contains several occurrences of ab_abcde, ab_abcde_FOO, ab_vwxyz, ab_vwxyz_BAR, etc"
我想在[{1}}
中为每个匹配的单词添加后缀“_XXX”由于我希望所有匹配都以$string
或ab_abcde
开头,所以我尝试过:
ab_vwxyz
以及其他一百万种变化无济于事。
我花了一整天时间在SO上寻找,但还没有找到一个效果很好的解决方案。我会感激一点帮助。
PS:由于我的$string -replace "(ab_abcde|ab_vwxyz)(.?)\s+", '$1$2_XXX'
实际上是mysqldump的输出,我的一些搜索词将被包含在重音符号(`)中,如下所示:`ab_abcde`,我想匹配它们。我不确定这会带来多大的复杂性,因为这也是PowerShell转义字符。
谢谢。
答案 0 :(得分:2)
答案 1 :(得分:1)
喜欢这个吗?
$string = "The string that contains several occurrences of ab_abcde, ab_abcde_FOO, ab_vwxyz, ab_vwxyz_BAR, etc"
$string -replace '(ab_abcde.*?\b|ab_vwxyz.*?\b)', '$1_XXX'
The string that contains several occurrences of ab_abcde_XXX, ab_abcde_FOO_XXX, ab_vwxyz_XXX, ab_vwxyz_BAR_XXX, etc
编辑:发布其他评论后更新。