我有以下字符串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
答案 0 :(得分:1)
问题解决了吗?至少在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");
});
其他语言可能会有不同的故事。
请尝试the home of RegexBuddy了解详情。
答案 1 :(得分:0)
所以你已经有了一个表达式来查找字符串的实例。现在你可以使用组来替换字符,或者你可以在你找到的字符串上使用单独的正则表达式,只需替换}
中的group(0)
字符(这是输入的整个匹配部分) )。我当然更喜欢后者。
Fred似乎已经为你创建了替换方法,所以我不会在这里重复它。
答案 2 :(得分:0)
我已经设法找到了Regex Buddy使用的JGSoft Lanugage中的格式化解决方案,感谢所有提供的建议,帮助我将思路引向正确的方向。
解决方案(我仍然是Regex的初学者,因此语法可能不高效,但它可以完成工作!!)
使用群组名称代替正则表达式,并使用反向引用和$
语法分组。
因此,将0
替换为字符串}
中的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