您好,我需要一些帮助来创建更好的正则表达式。 我有以下文字:
Welcome.to-RegEx_r.v2.0.03.by.gski.v2.0.03 danner.com!bla-la_122.232-13!
我需要的是,删除所有点、破折号和下划线,但如果有像“v2.0.03”这样的字符串,则跳过删除点并从不是来自 version(dot, dash,下划线、字母/字符)因此字符串必须如下所示:
Welcome to RegEx r v2.0.03 by gski v2.0.03 danner com!bla la 122 232 13!
我尝试过并且几乎可以使用这个正则表达式:
([\.\-\_])(?![\d])
但是如果点、破折号或下划线之后的下一个字符是数字,则不起作用。这是我在 regexr 中的尝试 - http://regexr.com/3b7qu
最佳答案
您可以使用此正则表达式:
var str = 'Welcome.to-RegEx_r.v2.0.03.by.gski.v2.0.03 danner.com!bla-la_122.232-13!';
str = str.replace(/(?:(v\d+(?:\.\d+)+) *)?[._ -]+/g, "$1 ");
//=> Welcome to RegEx r v2.0.03 by gski v2.0.03 danner com!bla la 122 232 13!
关于javascript - 正则表达式有一个异常(exception) - 如果数字是下一个符号,则不匹配所有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30914611/