问题标签 [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.
drupal - Drupal 7:命名引用
我正在使用 Drupal 7 开发一个网站,我需要从一个节点到另一个节点的反向引用,但我还需要为这些关系命名;从 A 到 B 和 B 到 A 的名称不同,但它们都是预定义的(即电影 A 引用电影 B 作为续集,因此电影 B 自动反向引用电影 A 作为前传)。我寻找了一些模块,我只找到了 Drupal 7 的“相应节点引用”,但它只完成了一半的工作:它进行反向引用,但它没有命名它们。那么,¿你知道任何可以进行反向引用并命名它们的模块吗?我将非常感谢您的回答谢谢
regex - Vim 正则表达式:覆盖反向引用?
项目:
以维基百科的罗马执政官列表为例,将数据放在 CSV 中,这样我就可以绘制出各个家族在执政官方面的兴衰图表
示例数据源:
Vim 搜索:
所以本质上:
- 查找开头的年份(或 suffect consul 的指示):
(\d+|suff\.)
- 下一个分组(我们称之为外组)最多需要找到两次:
(outer group){,2}
- 对于这两个外部组中的每一个,找到:
- Praenomen,带有可选句号(有时不存在):
(\w+.=)
- 无人:
(\w+)
- 可选的认知(包括空格,如下所示):
(\s\w+)=
- 可选的 agnome:
(\s\w+)=
- 可选迭代(表示他第 n 次担任领事)。数据源的迭代次数不超过 8 次(所以 I 和 V 就足够了):
(\s[iv]+)=
- 可选的解释性说明,例如“Sicinius (Sabinus?)”:
(\s\(.{-}\))=
- Praenomen,带有可选句号(有时不存在):
(最后一个逗号是可选的,因为它是行尾。)
所以后面的引用结果是:
问题是我不知道如何捕获第一个外部组。就像 \2 和 \3-\8 引用在看到第二个外部组时被覆盖。
使用此替换:
我得到这个输出:
我无法访问第一个外部组中的那些组。我认为它们被覆盖了:它们被覆盖了吗?如果是这样,有没有办法解决这个问题?
编辑:原标题 Vim 正则表达式(或任何兼容的正则表达式):如果迭代外部组,如何引用组(组内)?
replace - 正则表达式 - 查找特定字符之前的第一个字符(如 Excel 的 LEFT 函数)
我正在尝试找到一种方法来查找/替换 .csv 文件(单列)中的电子邮件地址,其中包含@
符号前的前 10 个字符。一个示例 CSV 文件将是:
我想要的输出是:
到目前为止,我已经找到了如何通过以下方式摆脱@
和接下来的一切:
查找: (.*)@.*
替换: \1
我希望我可以在 \1
指定仅替换 \1
.
有什么想法吗?
regex - 对包含固定重复次数的组的成分的反向引用
我想找到一个彼此重复 x 次的组,例如,由空格分隔的字母数字组合五次。我可以使用简单的重复语法,例如(?:\w\d ){5}
.
然后我想用其他东西替换这个 5x 字母数字中的空格。为此,我尝试通过在其周围放置括号来反向引用每个字母数字组合(不带空格)(?:(\w\d) ){5}
:. 不幸的是,所有五个都存储在 中$1
,即$1
每次匹配时都会被覆盖。
那么,有没有办法避免这种覆盖?或者有没有办法只在子字符串中替换一些东西?
编辑:
示例输入字符串:A1 A3 A4 B6 ::: A1 A3 A4 C5 B6
所需的输出字符串:A1 A3 A4 B6 ::: A1-A3-A4-C5-B6
这意味着,仅当其中有五个时才替换空格。在 Perl 中实现。
java - 正则表达式;反向引用字符集中不匹配的字符
我想构造一个正则表达式,它匹配'
or"
然后匹配其他字符,在分别匹配 a'
或 an时结束"
,具体取决于在开始时遇到的内容。所以这个问题看起来很简单,可以在最后使用反向引用来解决;下面是一些正则表达式代码(它在 Java 中,所以请注意额外的转义字符,例如\
之前的"
):
此代码将成功处理以下内容:
当我有这样的字符串时,麻烦就来了:
使用上面的正则表达式将在遇到初始部分时失败,'
然后它将继续并成功匹配'may be taken'
......但这显然是不够的,我需要匹配整个字符串。
我在想的是,我需要一种方法来忽略第一组中不匹配的引号类型,方法是将其作为字符包含在第三组的字符集中。但是,我知道没有办法做到这一点。是否有某种鬼鬼祟祟的 NOT 反向引用函数之类的?我可以用它来引用第一组中不匹配的字符??或者以其他方式解决我的困境?
regex - Perl 的 unpack("A4/A*") 正则表达式形式的长度+字节语法
如 perlpacktut 中所述,您可以使用 X/Y* 的解包字符串首先获取字节流的长度,然后准确读取那么多字节。但是,我很难在正则表达式中找到类似的东西,比如纯 ASCII 数字和字符串。例如,Bencoded 字符串的形式为:
我记得曾经能够做到这一点,但只能使用 ??{},而且我现在手头没有代码。这可以在没有 ??{} (这是超级实验性的)的情况下使用较新的 5.10 捕获/反向引用之一来完成吗?
明显的表达不起作用:
regex - 为什么我的正则表达式中的反向引用不起作用?
我写了一个正则表达式试图匹配一些 html 代码,但我不能完全工作。我在“wp-caption”之后的部分有问题。
我要匹配的代码:
我匹配前三个结果,但不是第四个。我不认为 \1 正在工作。有什么想法吗?
BTdubs 我一直在使用http://regexpal.com/进行测试。
regex - VBA Regex .Replace 方法中允许多少个参数?
!我正在使用 VBA 正则表达式的替换方法,想知道它可以接受多少个参数?我已经看到提供了许多不同选项的 msdn 页面,但我不确定该使用哪个。这是该页面的链接:MSDN 页面:Regex.Replace 方法
如果可能的话,我希望能够在“替换为”参数中使用反向引用和其他 VBA 正则表达式。
例如,我目前只能这样做(文字替换)
我想这样做,例如:
或者
如何在 VBA 正则表达式中执行此操作?
谢谢你的帮助!
regex - 清除正则表达式匹配变量的最佳方法是什么?
清除/重置所有正则表达式匹配变量的最佳方法是什么?
示例如何
/li>$1
在正则表达式操作之间不重置并使用最近的匹配:示例在使用循环时这可能会出现问题:
/li>
更新:我认为我不需要这样做,但 Example-2 只是一个示例。这个问题是关于重置匹配变量,而不是实现它们的最佳方法。
无论如何,最初我的编码风格更符合明确和使用 if 块。现在回到这个(Example2)之后,阅读多行代码会更加简洁,我会发现这种语法更快地理解。
regex - 如何使用 ack (或等效项)返回字符串的一部分?
我在文件中有一行,如下所示:
我想使用 ack 或 grep 或其他东西bar
从该字符串中返回。到目前为止,我有:
但不知道如何让它只吐出第一个反向引用,而不是整行。