问题标签 [backreference]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 将多个表达式优化为一个
背景
我有一个场景,我必须一遍又一遍地在文本中找到某些单词。我目前以这样的格式使用了一系列正则表达式......
...
这个 Regex 对象列表是用一大块数据循环的,并且匹配项被拉出(一个循环用于一个 regex.matches(data) 调用)
我已经尽我所能来优化它们,例如事先编译它们。
然而,这个列表越来越长,我决定开始制作更大的编译正则表达式来优化这个过程。如...
这提供了巨大的速度改进,但是有一个副作用,我无法弄清楚如何纠正。
当单词并排在数据中时(例如空格分隔。例如“Word1 NextWord AnotherWord”),捕获中会丢失第二个单词,因为“Word1”的正则表达式还包括尾随空格。“NextWord”可能出现的匹配不再具有前导空格,因为它是前一个匹配的一部分。
问题
任何人都可以更改此正则表达式(.net 格式)
只需一次调用“.matches(data)”,即可捕获下面此列表中的所有单词
? (不牺牲效率增益)
结果
只是想我会提到这一点。在应用建议的答案/更正并向前看后,我现在知道如何使用:),我刚刚修改的代码的速度提高了 347 倍(旧测试速度的 0.00347%)。当您遇到多个表达式时,这绝对是要记住的事情。很高兴。
regex - 是否可以使用正则表达式进行算术运算?
我想知道是否有办法匹配整数及其继承者:
我想匹配:“1 Victor 2 Marconi”
但不是:“1 Victor 3 Marconi”
有没有办法反向引用第一个数字并像这样增加它: (\d) [[:alpha:]]* \1 +1 [[:alpha:]]* (INVALID)
我不知道 regexp 是否是正确的工具。如果不是,那会是什么?
php - php preg_match_all 反向引用
对于以下输入字符串、模式和:
print_r 的输出如下:
正如你所看到的,Array[2] 给了 Aditya Parikh,我也希望能收到 Vinton Heuck 和 Ciro Nieli。但没有。
有什么解决办法??
c# - 带有反向引用的正则表达式
我试图在 C# 应用程序中编写一个正则表达式来查找“{value}”,以及对它之前的文本的反向引用到“[[”,以及对它之后的文本的另一个反向引用到“]]” . 例如:
将匹配“[[反向引用一”、“{value}”和“\r\n反向引用二]]”。
我尝试过以下修改版本,但没有成功。我相信我缺少单词边界,并且可能因为我试图查找的文本中的“{”而遇到麻烦。
我不确定是否可以使用正则表达式,但如果它可以找到匹配的右括号,那将是理想的,例如以下将找到 "[[backreferenc[[e]] one ", "{value} ”和“ba[[ckref[[e]]rence t]]wo]]”:
regex - 带有反向引用的正则表达式
所以我有这个非常长的文件,其中有这样构建的行:
我必须在括号之间搜索至少 9 个 + 或 - 字符的字符串,并且必须在括号旁边的两个“>”之间找到在这些括号之间匹配的相同内容......到目前为止我想出了这;
java - 是否可以对非捕获组进行反向引用?
我正在尝试创建一个正则表达式/替换对来使用replaceAll()
它将捕获目标字符串之前和之后的字符。
这是我的版本,适用于简单的情况:
根据需要产生"abcd"
(最后的展望是消耗到字符串的末尾,使单个调用replaceAll()
起作用)。
但是,当目标之后的字符也是目标之前的字符时,我似乎无法解决一个边缘情况:
生产"ab"
,但我想"abbd"
。正则表达式消耗了匹配的前导部分,使以下输入不匹配。
我试过环顾四周,但似乎无法让它工作。
注意:我对涉及循环或代码等的解决方案不感兴趣。只是寻找适用于提到的边缘情况的正则表达式和替换字符串。
php - 使用反向引用对模式进行反向引用
考虑(\w[0-9]).*\1
RegEx,它匹配d1akdhfafd1
,R2ddsfasfasfdsfdR2
等。
是否可以编写一个与以下内容匹配的正则表达式:D1dfsadfadsfE3
, z6adfdasfdfr2
, e3654654e0
,....?
\w[0-9]
只是一个例子,请考虑一般形式(::A_Complex_Pattern::).*\1
javascript - 如何在 JavaScript 中更新反向引用内联?
给定以下代码:
预期的输出是:
实际输出为:
这导致我找到了这个解决方法:
如何在不需要匹配更新反向引用的情况下执行此操作?
java - Java - 数组中的正则表达式反向引用
有没有办法使用正则表达式拆分 Java 字符串并返回一个反向引用数组?
举个简单的例子,假设我想从一个简单的电子邮件地址(仅限字母)中提取用户名和提供者。
这应该输出
inheritance - SQLAlchemy 和带有 backrefs 的多态继承
我有类Node
,Leaf (Node)
如下所示: 它工作正常,但我更愿意将leafs
andsubleafs
定义转移到Leaf (Node)
类。我该如何做到这一点?
和
我试过这个,但失败了(部分):
我的删除测试用例不喜欢这样(只是删除树中的基本/根节点并依赖cascade='all'
),并抱怨:
我想改变定义的原因是,因为我不想扩展Node
的每个子类的定义,Leaf (Node)
稍后我可能会介绍。此外,我绝对不需要_x
and _y
,因为我已经有了Leaf.root
and Leaf.base
(由 提供Node
);但是省略它们(_x =
& _y =
)会带来麻烦,例如:
我想我需要使用一些东西来Leaf (Node)
附加关系,即使我不需要在我的原始定义中使用任何反向引用 forleafs
和subleafs
in Node
。谢谢。