使用Windows PowerShell,我试图通过附加后缀来替换大字符串中某个特定单词模式的所有出现。
$string = "The string that contains several occurrences of ab_abcde, ab_abcde_FOO, ab_vwxyz, ab_vwxyz_BAR, etc"
我想在
$string
中的每个匹配单词后缀“_XXX”由于我希望所有匹配项都以
ab_abcde
或ab_vwxyz
开头,因此我尝试了以下操作:$string -replace "(ab_abcde|ab_vwxyz)(.?)\s+", '$1$2_XXX'
一百万个其他变体,但无济于事。
我花了整整一天的时间在SO上狩猎,但还没有找到一种行之有效的解决方案。我将不胜感激。
PS:由于我的
$string
实际上是mysqldump的输出,因此我的一些搜索词将包裹在grave-accent(`)之间,就像这样:ʻab_abcde`,我想将它们匹配。考虑到这也是PowerShell的转义字符,我不确定这会带来多少复杂性。谢谢。
最佳答案
关于regex - 正则表达式替换以某个子字符串开头的所有单词的所有出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27710795/