正则表达式有一个例外 - 如果数字是下一个符号,则不要匹配所有内容
Regex with an exception - don't match all things if digit is next symbol
再次嗨,我需要一点帮助来创建更好的正则表达式。我有以下文字:
Welcome.to-RegEx_r.v2.0.03.by.gski.v2.0.03 danner.com!bla-la_122.232-13!
我需要的是,删除所有点、破折号和下划线,但如果有一个像"v2.0.03"这样的字符串来跳过删除点并从不是来自版本的 nex char 继续(点、破折号、下划线、字母/字符)所以字符串必须看起来像这样:
Welcome to RegEx r v2.0.03 by gski v2.0.03 danner com!bla la 122 232 13!
我尝试并几乎可以使用这个正则表达式:
(['.'-'_])(?!['d])
但是,如果点、破折号或下划线之后的下一个字符是数字,则不起作用。 这是我在正则表达式中的尝试 - 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!
正则表达式演示
您可以使用以下正则表达式:
([.])(?!'d'd'b|'d'b)|[-_]
查看演示
但请注意,如果您的正则表达式引擎在展望中支持不同的模式长度,这将起作用。
另请注意,这将匹配不后跟 2 位数字或 1 位数字的点(使用单词边界拒绝匹配.232
)或[-_]
之一
试试看 (?<!v'd(.'d))(?<!v'd)['.'-_]
(由于许多引擎不支持 lookback 中的量词,我尝试了这种方式https://regex101.com/r/eH7jE0/1
此模式包括"v",因此它可能比没有它更健壮
相关文章:
- 是否有一个JS/jQuery函数可以获取某个类的每个元素的ID
- 如何在只能有一个asp.net表单的主页上从asp.net页面中的javascript中获取值
- 有可能在来自链接的警报中有一个值吗
- 是否<asp:文本框>有一个onFocusLost事件
- 让谷歌数据图表有一个24小时x轴
- PayPal按钮是否有一个简单的选项,其中金额基于一些用户输入
- 我确实有一个表单,如果用户输入了输入,它应该检查否定或空的输入框,并抛出一条警告消息
- 在这个使用hasOwnProperty的对象扩展程序中有一个错误,I'我不确定那个bug是什么,也不确定这个扩展
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- PNG图像被覆盖,但每个图像都有一个链接可以更改,每次一个-Javascript/jQuery/CSS
- JQuery是否有一个“;移动“;作用或者有没有一种更紧凑的方法来做到这一点
- Regex或javascript每X个连续单词中有一个单词
- Jquery时间启动计时器,我有一个计时器的代码,但它在页面加载时启动
- 是否有一个javascript库来解析简单的查询
- 在一个函数中,我有一个未捕获的语法错误:意外的标记else
- 检查一个元素是否有一个类与另一个类总是返回true
- 我有一个用幻灯片制作的网页,但幻灯片会在屏幕上移动
- 为什么在下面的例子中零有一个符号
- 如何检查一个元素在id的哈希符号之后是否有一个字符串?
- 正则表达式有一个例外 - 如果数字是下一个符号,则不要匹配所有内容