- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
exp)"-6ren"> exp)"-我正在努力变得更擅长正则表达式。我很难理解 (?> expression ) 是什么意思。我在哪里可以找到更多关于非回溯性 subexpressoins 的信息? THIS的说明链接说: Greedy-6ren">
我正在努力变得更擅长正则表达式。我很难理解 (?> expression )
是什么意思。我在哪里可以找到更多关于非回溯性 subexpressoins 的信息? THIS的说明链接说:
Greedy subexpression, also known as a non-backtracking subexpression. This is matched only once and then does not participate in backtracking.
此其他链接:http://msdn.microsoft.com/en-us/library/bs2twtah(v=vs.71).aspx也有非回溯子表达式的定义 ,但我仍然很难理解它的含义,而且我想不出一个我将使用 (?>exp)
最佳答案
一如既往,regular-expressions.info是一个很好的起点。
如果您想确保曾经匹配的任何内容都将保留在匹配中,请使用原子组。
例如,为了匹配一些可以用空格分隔,也可以不用空格分隔,然后后跟冒号的“单词”,用户尝试了正则表达式:
(?:[A-Za-z0-9_.&,-]+\s*)+:
有比赛的时候,一切都很好。但如果没有,他的 PC 会因为灾难性的回溯而在 100% 的 CPU 负载下变得无响应,因为正则表达式引擎会徒劳地尝试找到允许以下冒号匹配的匹配单词组合。这当然是不可能的。
通过使用原子组,可以避免这种情况:
(?>[A-Za-z0-9_.&,-]+\s*)+:
现在任何已匹配的都保持匹配 - 没有回溯,因此失败时间很快。
我最近遇到的另一个很好的例子:
如果您想匹配所有后面没有跟 ASCII 字母的数字,您可能需要使用正则表达式 \d+(?![A-Za-z])
。但是,对于像 123a
这样的输入,这将失败,因为正则表达式引擎将很乐意通过回溯返回匹配 12
,直到后面的字符不再是字母。如果您使用 (?>\d+)(?![A-Za-z])
,则不会发生这种情况。 (当然,\d+(?![\dA-Za-z])
也可以)
关于c# - 非回溯子表达式如何工作 "(?>exp)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11632247/
如果我在 sympy 中使用 simplify() 函数,log((exp(x)+1)/exp(x)) 会简化为 log (1+exp(-x)),但是,当我阅读文档时,简化函数“可能会不必要地慢”,我
我正在创建一个 Validator类(class)。我正在尝试实现 Linq SelectMany我的验证器的扩展方法能够使用 Linq 查询组合表达式并验证最终结果,即使基础值发生变化也是如此。 下
我正在尝试编写一个程序来计算 exp(-x) 和 exp(x) 的泰勒级数最多 200 次迭代,对于大 x。 (exp(x)=1+x+x^2/2+...). 我的程序非常简单,看起来应该可以完美运行。
我正在看书,看到这段代码: public Animal getWinner(List animals) { return animals == null || animals.size() =
我正在将脚本从 matlab 复制到 C++ 函数中。但是,对于 exp 函数,我不断得到不同的结果。例如,以下片段: std::complex final_b = std::exp(std::com
我不太了解 Python,但下面的代码片段结果是 0.367879441171 from math import exp window = 10000 td = 1 print exp(-td/win
为什么/何时使用其中一种?我刚刚遇到了一个问题,我在使用一个时收到警告,而在使用另一个时没有警告。 例子: tableView.tableHeaderView = label; // worked [
这个问题在这里已经有了答案: java.lang.Math.log replaced by intrinsic call, why not java.lang.Math.exp()? (1 个回答)
我正在将一些 Python 代码转换为 C 代码。 下面的复数输出上的 Python NumPy exp (6.12323399574e-17-1j) 为 k=1、l=4。 numpy.exp(-2.
我正在尝试学习或生成任何代码来学习字符串day("26.02.2009") --->给我“星期三” 我需要C#中的静态datefunction。 例如: datetime Str_day= Retur
[编辑:整个事情有一个非常简单的解决方案:矩阵使用单数据类型而不是默认的双数据类型] 我刚刚注意到 matlab 中的一个有点奇怪的(我认为)行为,想知道是什么导致了它。我有一个 10000x500
我创建了一个运行良好的网站,但我想添加干净的 url,如 exp.com/sec1 而不是 exp.com/#sec1,我有点用 History.pushState 实现了它,但是当有人重新加载链接将
我目前正在听一个关于自动语音识别 (ASR) 的讲座。最后一讲是关于矢量量化(VQ)和k最近邻(kNN)以及二叉树和高斯混合模型(GMMs)。 据讲师介绍,VQ只是通过计算GMM的一个近似值来加速GM
在 oracle 中,我们有 exp效用。我们将其用作 exp username/password@database .这里我们可以使用提供主机和端口详细信息来导出到远程数据库表吗?如果是,提供这些的
如何使用 at-exp 来包含 blew 原始字符串: package foo } import ( 我是这样写的,但是不能包含“}”字符: #lang at-exp racket/base
我试图了解 http://gruntthepeon.free.fr/ssemath/sse_mathfun.h 中 exp_ps() 的实现或 http://software-lisc.fbk.eu/
我正在使用模板类 ( Pol ) 来计算多项式,并希望使用成员函数 ( .exp() ) 将多项式 P 转换为其指数 e^P。 重载指数函数工作正常,编译器选择原始指数 exp(double)如果T
在python中,我们说万物皆对象, 例如:表达式x
您认为可以使用多个线程来计算指数函数吗?我有一个代码,瓶颈是 long double expl( long double ) 的计算。所有其余的都已经并行化了。我尝试了几种近似值,但到目前为止没有任何
我正在尝试将 exp(x) 函数扩展为泰勒级数。这是代码: double CalcExp(){ double eps = 0.0000000000000000001; double elem = 1.
我是一名优秀的程序员,十分优秀!