backreference相关内容

使用分组时如何使用 gsub 在 Ruby 正则表达式 (regex) 中反向引用?

我想修补一些从网页中提取的文本数据.示例: t="第一句.第二句.第三句." 第二句末尾的点后没有空格.这表明第 3 个句子在原始文档中位于单独的一行中(在 br 标签之后). 我想使用这个正则表达式将“\n"字符插入到适当的位置并修补我的文本.我的正则表达式: t2=t.gsub(/([.\!?])([A-Z1-9])/,$1+"\n"+$2) 但不幸的是它不起作用:“NoMeth ..
发布时间:2022-01-05 12:12:20 其他开发

Notepad ++ 搜索/替换中的正则表达式反向引用语法 - \1 或 $1

我尝试使用 Notepad++ Search/Replace with a Regular Expression 用这些词的较短版本替换特定词. 我使用以下正则表达式来匹配以 er 结尾的每个单词(但不是将 er 作为单词) - 并将匹配的单词替换为相同的单词减去结束 r,使用反向引用: 找到什么: ([a-zA-z]+e)r 替换为: $1 但它不会替换匹配的单词,即使它 ..
发布时间:2021-12-25 09:01:41 其他开发

绕过 sed 反向引用限制 \1 到 \9

sed 手册明确指出可用于替代字符串中的可用反向引用编号为 \1 到 \9.我正在尝试解析一个包含 10 个字段的日志文件. 我为它形成了正则表达式,但无法访问第十场比赛(以及之后的任何比赛). 有没有人有一种优雅的方法来规避 KSH(或任何我可以移植到 shell 脚本的语言)中的这种限制? 解决方案 你可以用 perl -pe 's/(match)(str)/$2$1/g; ..
发布时间:2021-12-24 12:03:20 其他开发

如何在 Go 中将正则表达式与反向引用匹配?

我需要匹配在我的 Go 代码中使用反向引用(例如 \1)的正则表达式. 这并不容易,因为在 Go 中,官方正则表达式包 使用 RE2 引擎,具有 选择不支持反向引用(以及其他一些鲜为人知的功能),这样可以保证线性时间执行,从而避免 正则表达式拒绝服务攻击.启用反向引用支持不是 RE2 的选项. 在我的代码中,不存在被攻击者恶意利用的风险,我需要反向引用. 我该怎么办? 解决 ..
发布时间:2021-12-11 22:42:07 其他开发

Python regex - 用括号的内容替换括号内的文本

我正在尝试编写一个 Python 函数,用大括号的内容替换用大括号括起来的文本实例,同时保留空的大括号对.例如: foo {} bar {baz} 会变成 foo {} bar baz. 我创建的与此匹配的模式是 {[^{}]+},即一些不包含由一组包围的花括号(以防止重叠匹配)的文本花括号. 显而易见的解决方案是在我的模式中使用 re.sub,我发现我可以使用 \g 引用匹配的 ..
发布时间:2021-09-01 18:40:33 Python

尝试打印匹配表达式时使用 sed 的无效引用 \1

在我开始之前,我已经看过这个 问题,但似乎解决方案是他们没有转义正则表达式中的括号.我遇到了同样的错误,但我没有对正则表达式进行分组.我想要做的是在 lastlog 文件中找到所有名称/用户名并仅返回 UN. 我有什么: s/^[a-z]+ |^[a-z]+[0-9]+/\1/p 我已经看到许多解决方案展示了如何在 awk 中执行此操作,这对于将来参考非常有用,但我想使用 sed 来执 ..
发布时间:2021-07-17 21:08:46 其他开发

如何在 php 中查找、增加和替换?

我有 \d+_\d+ 形式的字符串,我想在第二个数字上加 1.由于我的解释非常清楚,让我举几个例子: 1234567_2 应该变成 1234567_3 1234_10 应该变成 1234_11 这是我的第一次尝试: $new = preg_replace("/(\d+)_(\d+)/", "$1_".((int)$2)+1, $old); 这会导致语法错误: 解析错误:语法 ..
发布时间:2021-07-06 20:38:35 PHP

是否有等效的“&"?在 R 的正则表达式中用于反向引用整个匹配?

当我使用 vim 时,我经常使用 & 在替换中反向引用整个匹配项.例如,以下将所有“foo"的实例替换为“foobar": %s/foo/&bar/g 这里的好处是懒惰:我不必在匹配中键入括号,我只需要键入一个字符而不是两个字符作为替换中的反向引用.也许更重要的是,我在打字时没有弄清楚我的反向反射,从而减少了认知负担. 在 R 的正则表达式中是否有与我在 vim 中使用的 & 等效的代码 ..
发布时间:2021-07-06 20:15:13 其他开发

使用 preg_replace 命名反向引用

非常简单;我似乎找不到任何关于 PHP 的 preg_replace() 支持命名反向引用的明确内容: //应该匹配、替换和输出:user/profile/foo$string = 'user/foo';echo preg_replace('#^user/(?P[^/]+)$#Di', 'user/profile/(?P=id)', $string); 这是一个微不足道的例子,但我想知道这种语 ..
发布时间:2021-07-06 20:06:32 PHP

无法在 re.sub() repr 表达式中的函数调用中使用 '\1' 反向引用来捕获组

我有一个字符串 S = '02143' 和一个列表 A = ['a','b','c','d','e'].我想用列表 A 中的相应元素替换“S"中的所有数字. 例如,将 0 替换为 A[0],将 2 替换为 A[2] 等等上.最终输出应该是 S = 'acbed'. 我试过了: S = re.sub(r'([0-9])', A[int(r'\g')], S) 然而,这会产生一个错误 ..
发布时间:2021-07-06 19:31:56 Python

从正则表达式中提取捕获组匹配?(或:gregexec 在哪里?)

给定一个包含捕获组(括号)和一个字符串的正则表达式,如何我获得所有匹配捕获组的子串,即通常由“\1"、“\2"引用的子串? 示例:考虑一个捕获以“xy"开头的数字的正则表达式: s 想要的结果: [1] "1234" "567" 第一次尝试:gregexpr: regmatches(s,gregexpr(r,s))#[[1]]#[1] "xy1234" "xy567" 不是我想 ..
发布时间:2021-07-06 19:25:11 其他开发

绕过 sed 反向引用限制 \1 到 \9

sed 手册明确指出,可用于替换字符串的可用反向引用编号为 \1 到 \9.我正在尝试解析一个包含 10 个字段的日志文件. 我为它形成了正则表达式,但无法访问第十场比赛(以及之后的任何比赛). 有没有人有一种优雅的方法来规避 KSH(或任何我可以移植到 shell 脚本的语言)中的这种限制? 解决方案 Can you use perl -pe 's/(match)(str)/ ..
发布时间:2021-07-06 19:14:36 其他开发

否定正则表达式中的反向引用

如果字符串具有这种预测格式: value = "你好,早上好" 其中 "(引号)也可能是 '(单引号),并且结束字符(' 或 ")将与开始字符相同.我想匹配引号之间的字符串. \bvalue\s*=\s*(["'])([^\1]*)\1 (两个 \s 允许在 = 符号附近有任何空格) 第一个“捕获组"(在第一对括号内)-应该匹配开头的引号,应该是 ' 或 "然后 - 我应该允许任何数 ..
发布时间:2021-07-06 19:03:29 其他开发

python正则表达式中括号的奇怪行为

我正在编写一个 python 正则表达式,它在文本文档中查找带引号的字符串(从黑匣子记录的航空公司飞行员的引号).我首先尝试使用以下规则编写正则表达式: 返回引号之间的内容. 如果以 single 开头,则仅在以 single 结尾时返回. 如果以 double 开头,则仅在以 double 结尾时返回. 例如,我不想匹配“hi there"或“hi there",而是“hi th ..
发布时间:2021-06-30 19:42:07 Python

正则表达式反向引用 findall 不起作用

我最近一直在程序中使用正则表达式.在这个程序中,我使用它们在与某个 RE 匹配的单词列表中查找单词.然而,当我尝试用这个程序进行反向引用时,我得到了一个有趣的结果. 代码如下: 导入重新模式 = re.compile(r"[abcgr]([a-z])\1[ldc]")string = "reel reed has that with this they"打印(re.findall(模式,字 ..
发布时间:2021-06-28 19:27:22 Python

python re.sub - 替代替换模式

我想为 re.sub 提供替代替换模式. 假设我有两种搜索模式作为替代,如下所示: re.sub(r"[A-Z]+|[a-z]+", replacementpattern, string) 而不是提供一种替换模式,我想以某种方式捕获匹配的搜索模式替代并提供替代替换模式.这可能吗?谢谢. 附注.这里的代码细节无关紧要,这是一个普遍问题. 解决方案 您可以将函数传递给 re.s ..
发布时间:2021-06-28 19:21:18 Python

perl regex 中的单独反向引用后跟数字文字

我发现了这个相关的问题:在 perl 中,替换文本中的反向引用,后跟数字文字但似乎完全不同.我有一个这样的正则表达式 s/([^0-9])([xy])/\1 1\2/g^这里的空白 但是这个空格出现在替换中. 如何在不让 perl 混淆对 \11 的反向引用的情况下获取替换字符串中的空格? 例如.15+x+y 变为 15+1x+1y.我想得到 15+1x+1y. 解决方案 ..
发布时间:2021-06-15 20:03:15 其他开发