我想搜索SSN并删除破折号。但我需要确保SSN介于两者之间
<Employee_ID>111-22-3333</Employee_ID>
仅而不是文件中的其他位置。有人可以帮忙,所以我最终得到了
<Employee_ID>111223333</Employee_ID>
答案 0 :(得分:3)
搜索
(?<=<Employee_ID>)(\d{3})-?(\d{2})-?(\d{4})(?=</Employee_ID>)
将正则表达式作为搜索模式并替换为
$1$2$3
(?<=<Employee_ID>)
是lookbehind assertion,确保“<Employee_ID>
”在SSN之前但未匹配。
(?=</Employee_ID>)
是lookahead assertion,确保“</Employee_ID>
”跟随SSN但未匹配。
$x
是括号中其他三个capturing groups的内容。
答案 1 :(得分:1)
查找内容: (\d{3})-(\d{2})-(\d{4})
替换为: \1\2\3
<强>解释强>
第一个捕获小组(\d{3})
\d
匹配数字[0-9]
量词:{3}
恰好3次 - 所以这匹配3位数
第二个捕获组(\d{2})
匹配2位数字
第3个捕获组(\d{4})
匹配4位数