如何在正则表达式匹配字符串的前面和后面添加2个单词?
示例:
的 HI1,HI2,的的6d371555e08ba2b2397fd44a0db31605e7def831585c4c11dbb21c70d89e3b3551350e36d2cef84097077a4f5f12e5ee359625ec0f776403895039c4442860fa9968827ab119c8e8362c8a5cbef4389c2c36a08eda30ce091fe9a8e19f9eec0d的 ,HI3 的的
正则表达式以匹配字符串:\b[A-Fa-f0-9]{64}\b
字符串:6d371555e08ba2b2397fd44a0db31605e7def831585c4c11dbb21c70d89e3b3551350e36d2cef84097077a4f5f12e5ee359625ec0f776403895039c4442860fa9968827ab119c8e8362c8a5cbef4389c2c36a08eda30ce091fe9a8e19f9eec0d
我要添加:hi1
,hi2
,hi3
。
答案 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]
}