问题标签 [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.
javascript - JavaScript - 字符串正则表达式反向引用
您可以在 JavaScript 中像这样反向引用:
这将(非常愚蠢)用“test”替换“$test”。但是想象一下,我想将结果字符串 $2 传递给一个函数,该函数返回另一个值。我试过这样做,但不是得到字符串“test”,而是得到“$2”。有没有办法做到这一点?
java - Jakarta Regexp 1.5 反向引用?
为什么会这样:
但这不会:
反向引用似乎不起作用......我错过了什么?
regex - 正则表达式:反向引用
我认为这应该采用这个xml:
并将其变成:
但正在做的是:
javascript - 仅使用一个表达式匹配第一个匹配的更改版本?
我正在为 Alex Gorbatchev 的 Syntax Highlighter 编写画笔,以突出显示 Smalltalk 代码。现在,考虑以下 Smalltalk 代码:
我想找到块参数“:每个”,然后每次出现时都匹配“每个”(为简单起见,假设每次出现都不仅仅是在括号内)。请注意,参数可以有任何名称,例如“:myArg”。
我尝试匹配“:每个”:
这似乎有效。问题是我要匹配“每个”的出现。我认为这样的事情可以工作:
但是交替的右侧似乎被视为独立表达式,因此反向引用不起作用。
甚至有可能在一个表达式中完成我想要的吗?或者我是否必须在第二个表达式中使用反向引用(通过另一个函数调用)?
mod-rewrite - RewriteCond %{QUERY_STRING} 出现问题,反向引用未在最终 URL 中显示
我的 .htaccess 文件中有以下内容:
但是,当我输入 URL 时,它的行为并不像预期的那样:
它被重写为:
有人可以告诉我我做错了什么吗?
谢谢,
eb_dev
php - 你可以在正则表达式的模式部分使用反向引用吗?
有没有办法在正则表达式模式中反向引用?
示例输入字符串:
假设我想提取引用的文本,我可以创建以下表达式:
此正则表达式将匹配some quoted
.
假设我希望它也支持单引号,我可以将表达式更改为:
但是,如果输入字符串混合了引号,说明Here is 'some quoted" text.
我不希望正则表达式匹配怎么办。目前,第二个示例中的正则表达式仍然匹配。
我想做的是,如果第一个引号是双引号,那么结束引号必须是双引号。如果起始引号是单引号,那么结束引号必须是单引号。
我可以使用反向引用来实现这一点吗?
我的另一个相关问题:使用正则表达式获取引号之间的文本
java - 在计算中使用正则表达式反向引用(Java,Netbeans 不仅如此)
在 Netbeans 中,“替换命令”(ctrl+H)有一个正则表达式复选框,以便我可以使用正则表达式在文档中搜索和替换。我也可以使用反向引用替换。
问题是我可以在计算中使用反向引用然后使用它吗?
例如,在“查找内容”中使用“([0-9]{1})”我会找到所有数字,在“替换为”中使用“$1a”会导致替换所有数字数字本身后跟字母a。
123456--->1a2a3a4a5a6a
我想用 234567 替换 123456 所以我想知道我是否可以在“替换为”中使用 ($1 +1) 之类的东西,或者是否有另一种方法可以做到这一点,但只能使用正则表达式(不在 MS Excel 或任何东西中)相似的)
谢谢
java - 后向引用
您可以在后视中使用反向引用吗?
假设我想split
在我身后的任何地方重复两次。
使用REGEX2
(其中反向引用是嵌套在一个lookbehind 中的一个lookahead 中)可以工作,但REGEX1
在运行时会出现此错误:
我想这是\1
有道理的,因为通常反向引用可以捕获任何长度的字符串(如果正则表达式编译器更聪明一点,它可以确定(.)
在这种情况下,因此具有有限长度)。
那么有没有办法在后视中使用反向引用?
如果没有,您是否可以始终使用这种嵌套的前瞻来解决它?还有其他常用的技术吗?
regex - ColdFusion - 将正则表达式反向引用传递给函数调用
我正在使用 ColdFusion 的 reReplace() 函数进行正则表达式模式替换。
我想对替换字符串使用函数调用,并将匹配的反向引用传递给它。
像这样的东西:
但这失败了,因为“参数 3 的值,当前为 \1,必须是类 java.util.Date 值。”
有没有其他方法可以实现这一目标?
谢谢,斯图
java - 替换字符串中的反向引用语法(为什么是美元符号?)
在 Java 中,似乎在其他一些语言中,模式中的反向引用前面有一个反斜杠(例如\1
, \2
,\3
等),但在替换字符串中它们前面有一个美元符号(例如$1
, $2
, $3
, and also $0
)。
这是一个片段来说明:
问题:
- 在替换字符串中使用
$
for 反向引用是 Java 独有的吗?如果不是,是什么语言开始的?什么口味使用它,什么不使用? - 为什么这是个好主意?为什么不坚持相同的模式语法?这不会导致语言更有凝聚力和更容易学习吗?
- 如果上面的语句 1 和 4 是“正确”语句而不是 2 和 3,那么语法会不会更精简?