我想知道是否有人可以检查这个正则表达式并重写它,而不会出现灾难性的回溯?我的父亲似乎很不高兴
String NEGATIVE = "(.*?[^0-9]+?)-([0-9.]+?.*?)";
根据Java代码,它正试图使用此表达式来帮助查找并用波浪字符替换负数符号。
// Replace any negative number signs as they will
// be confused with the subtraction operator.
expression = expression.replaceAll(NEGATIVE, "$1~$2").replaceFirst("^-", "~");
谢谢。
这将匹配基本表达式中数字之前的所有负号。执行,然后用~
替换整个匹配项。
您没有发布输入集,因此可能还有其他情况需要编码。
(?<=[-+*\/0-9 ]|^)-(?=[\d]+)
以下是一些替换的例子https://regex101.com/r/3H30tU/1https://regex101.com/r/3H30tU/1
有些正则表达式看上去很简单,但是执行起来耗时非常非常非常长,甚至会导致 JavaScript 引擎「挂起」。 开发者们很容易一不小心就写出这类正则表达式,所以我们迟早会面对这种意外问题。 典型的症状就是 —— 一个正则表达式有时能正常工作,但对于某些特定的字符串就会消耗 100% 的 CPU 算力,出现“挂起”现象。 在这种情况下,Web 浏览器会建议杀死脚本并重新载入页面。这显然不是我们愿意看到
我有3个正则表达式,但当模式匹配时执行相同的操作,所以我考虑将所有三个表达式合并为一个。我尝试了很多,但无法让“|”I.e”或“在我的正则表达式中工作 regex1:<代码>文本。替换(/([\u00A9-\u3299])/g,函数myFunction(x){…} regex2: regex3: 我试过这样做,但它不起作用regex:
问题内容: 我想将所有表达式与一个空格完全匹配。目前,我正在使用。但是,这似乎不是一个很好的方法。 问题答案: 为什么不?很好,有点复杂:
如何在不包含连续子字符串baa的字母表{a,b,c}上表达正则表达式?
问题内容: 我有一个要提取其子集的字符串。这是较大的Python脚本的一部分。 这是字符串: 我要拉出“ Moltbé,gràcies。mohl behh,GRAH-syuhs ”。为此,我使用正则表达式: 既然不起作用,我也不想提取(即和)。但我不明白为什么会收到此错误?正则表达式可在TextWrangler中使用,为什么不能在Python中使用呢?我是Python的初学者。 问题答案: 这样工
本文向大家介绍Ruby定义一个正则表达式,包括了Ruby定义一个正则表达式的使用技巧和注意事项,需要的朋友参考一下 示例 可以在Ruby中以三种不同的方式创建Regexp。 使用斜杠: / / 使用 %r{} 使用 Regex.new