在字符串前后添加一个单词

时间:2019-06-21 15:21:56

标签: regex powershell

如何在正则表达式匹配字符串的前面和后面添加2个单词?

示例:

HI1,HI2,的6d371555e08ba2b2397fd44a0db31605e7def831585c4c11dbb21c70d89e3b3551350e36d2cef84097077a4f5f12e5ee359625ec0f776403895039c4442860fa9968827ab119c8e8362c8a5cbef4389c2c36a08eda30ce091fe9a8e19f9eec0d的 ,HI3

正则表达式以匹配字符串:\b[A-Fa-f0-9]{64}\b

字符串:6d371555e08ba2b2397fd44a0db31605e7def831585c4c11dbb21c70d89e3b3551350e36d2cef84097077a4f5f12e5ee359625ec0f776403895039c4442860fa9968827ab119c8e8362c8a5cbef4389c2c36a08eda30ce091fe9a8e19f9eec0d

我要添加:hi1hi2hi3

2 个答案:

答案 0 :(得分:1)

使用$&在替换字符串中引用匹配项:

$s = '6d37...ec0d'
$s -replace '\b[a-f0-9]{64}\b', 'hi1,hi2,$&,hi3'

不需要匹配表达式中的大写字符,因为默认情况下PowerShell运算符(在这种情况下为-replace不区分大小写。

答案 1 :(得分:1)

不知道要匹配什么,下面是一个示例:

$str = 'klpo6d371555e08ba2b2397fd44a0db31605e7def831585c4c11dbb21c70d89e3b3551350e36d2cef84097077a4f5f12e5ee359625ec0f776403895039c4442860fa9968827ab119c8e8362c8a5cbef4389c2c36a08eda30ce091fe9a8e19f9eec0dputy'
if ($str -match '\b[A-Fa-f0-9]{64}\b'){
    'hi1,hi2,{0},hi3' -f $matches[0]
}

相关问题