问题标签 [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.

0 投票
5 回答
51742 浏览

javascript - JavaScript - 字符串正则表达式反向引用

您可以在 JavaScript 中像这样反向引用:

这将(非常愚蠢)用“test”替换“$test”。但是想象一下,我想将结果字符串 $2 传递给一个函数,该函数返回另一个值。我试过这样做,但不是得到字符串“test”,而是得到“$2”。有没有办法做到这一点?

0 投票
1 回答
162 浏览

java - Jakarta Regexp 1.5 反向引用?

为什么会这样:

但这不会:

反向引用似乎不起作用......我错过了什么?

0 投票
1 回答
761 浏览

regex - 正则表达式:反向引用

我认为这应该采用这个xml:

并将其变成:

但正在做的是:

0 投票
2 回答
318 浏览

javascript - 仅使用一个表达式匹配第一个匹配的更改版本?

我正在为 Alex Gorbatchev 的 Syntax Highlighter 编写画笔,以突出显示 Smalltalk 代码。现在,考虑以下 Smalltalk 代码:

我想找到块参数“:每个”,然后每次出现时都匹配“每个”(为简单起见,假设每次出现都不仅仅是在括号内)。请注意,参数可以有任何名称,例如“:myArg”。

我尝试匹配“:每个”:

这似乎有效。问题是我要匹配“每个”的出现。我认为这样的事情可以工作:

但是交替的右侧似乎被视为独立表达式,因此反向引用不起作用。

甚至有可能在一个表达式中完成我想要的吗?或者我是否必须在第二个表达式中使用反向引用(通过另一个函数调用)?

0 投票
1 回答
7474 浏览

mod-rewrite - RewriteCond %{QUERY_STRING} 出现问题,反向引用未在最终 URL 中显示

我的 .htaccess 文件中有以下内容:

但是,当我输入 URL 时,它的行为并不像预期的那样:

它被重写为:

有人可以告诉我我做错了什么吗?

谢谢,

eb_dev

0 投票
3 回答
4472 浏览

php - 你可以在正则表达式的模式部分使用反向引用吗?

有没有办法在正则表达式模式中反向引用?

示例输入字符串:

假设我想提取引用的文本,我可以创建以下表达式:

此正则表达式将匹配some quoted.

假设我希望它也支持单引号,我可以将表达式更改为:

但是,如果输入字符串混合了引号,说明Here is 'some quoted" text.我不希望正则表达式匹配怎么办。目前,第二个示例中的正则表达式仍然匹配。

我想做的是,如果第一个引号是双引号,那么结束引号必须是双引号。如果起始引号是单引号,那么结束引号必须是单引号。

我可以使用反向引用来实现这一点吗?


我的另一个相关问题:使用正则表达式获取引号之间的文本

0 投票
2 回答
927 浏览

java - 在计算中使用正则表达式反向引用(Java,Netbeans 不仅如此)

在 Netbeans 中,“替换命令”(ctrl+H)有一个正则表达式复选框,以便我可以使用正则表达式在文档中搜索和替换。我也可以使用反向引用替换。

问题是我可以在计算中使用反向引用然后使用它吗?

例如,在“查找内容”中使用“([0-9]{1})”我会找到所有数字,在“替换为”中使用“$1a”会导致替换所有数字数字本身后跟字母a。

123456--->1a2a3a4a5a6a

我想用 234567 替换 123456 所以我想知道我是否可以在“替换为”中使用 ($1 +1) 之类的东西,或者是否有另一种方法可以做到这一点,但只能使用正则表达式(不在 MS Excel 或任何东西中)相似的)

谢谢

0 投票
1 回答
2208 浏览

java - 后向引用

您可以在后视中使用反向引用吗?

假设我想split在我身后的任何地方重复两次。

使用REGEX2(其中反向引用是嵌套在一个lookbehind 中的一个lookahead 中)可以工作,但REGEX1在运行时会出现此错误:

我想这\1有道理的,因为通常反向引用可以捕获任何长度的字符串(如果正则表达式编译器更聪明一点,它可以确定(.)在这种情况下,因此具有有限长度)。

那么有没有办法在后视中使用反向引用?

如果没有,您是否可以始终使用这种嵌套的前瞻来解决它?还有其他常用的技术吗?

0 投票
3 回答
1076 浏览

regex - ColdFusion - 将正则表达式反向引用传递给函数调用

我正在使用 ColdFusion 的 reReplace() 函数进行正则表达式模式替换。

我想对替换字符串使用函数调用,并将匹配的反向引用传递给它。

像这样的东西:

但这失败了,因为“参数 3 的值,当前为 \1,必须是类 java.util.Date 值。”

有没有其他方法可以实现这一目标?

谢谢,斯图

0 投票
2 回答
26912 浏览

java - 替换字符串中的反向引用语法(为什么是美元符号?)

在 Java 中,似乎在其他一些语言中,模式中的反向引用前面有一个反斜杠(例如\1, \2,\3等),但在替换字符串中它们前面有一个美元符号(例如$1, $2, $3, and also $0)。

这是一个片段来说明:

问题:

  • 在替换字符串中使用$for 反向引用是 Java 独有的吗?如果不是,是什么语言开始的?什么口味使用它,什么不使用?
  • 为什么这是个好主意?为什么不坚持相同的模式语法?这不会导致语言更有凝聚力和更容易学习吗?
    • 如果上面的语句 1 和 4 是“正确”语句而不是 2 和 3,那么语法会不会更精简?