我有以下字符串3}HFB}4AF4}1 -M}1.
我已经使用正则表达式搜索了这个字符串:
([0-9])(\})([A-Z]{3})(\})([0-9][A-Z]{2}[0-9])(\})([0-9])(\s\-)([A-Z])(\})([0-9]).
我想用}
替换0
。我正在寻找的结果是30HFB04AF401-M01
,任何帮助都是适用的。我使用的工具是 Regex Buddy
问题解决了?至少在 JavaScript 中:-)
"3}HFB}4AF4}1 -M}1".replace(/\}/g, "0");
// "30HFB04AF401 -M01"
我没有抓住重点,对吧?
假设语言是 JavaScript,我们可以写类似
"dfghj456783}HFB}4AF4}1 -M}1fghjkl8765".replace(/(?:[\d\w\s]+)([0-9]}[A-Z]{3}}[0-9][A-Z]{2}[0-9]}[0-9] -[A-Z]}[0-9])(?:[\d\w\s]+)/g, function () {
return arguments[1].replace(/}/g, "0");
});
其他语言中可能发生的事情可能是另一回事。
试试RegexBuddy 的主页了解详情。
所以你已经有了一个表达式来查找字符串的实例。现在您可以使用组来替换字符,也可以对找到的字符串使用单独的正则表达式,只需替换其中的}
字符group(0)
(这是输入的整个匹配部分)。我当然更喜欢后者。
Fred 好像已经为你创建了替换方法,这里不再赘述。
我已经设法在 Regex Buddy 使用的 JGSoft 语言中找到了格式的解决方案,这要感谢所有提供的建议,这些建议帮助我将我的想法引导到正确的方向。
解决方案(我仍然是 Regex 的初学者,因此语法可能效率不高,但它可以完成工作!!)
使用组名而不是正则表达式通过反向引用和$
语法分配组。
因此替换字符串或任何类似字符串中的0
for 。我使用了以下搜索和替换语法}
3}HFB}4AF4}1 -M}1
搜索 :(?<Gp1>([0-9]))(?:})(?<Gp2>([A-Z]){3})(?:})(?<Gp3>([0-9])([A-Z]{2})([0-9]))(?:})(?<Gp4>([0-9]))(?:\s-)(?<Gp5>([A-Z]))(?:})(?<Gp6>[0-9])
代替 :${Gp1}0${Gp2}0${Gp3}0${Gp4}-${Gp5}0${Gp6}
结果 :30HFB04AF401-M01