问题标签 [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 投票
1 回答
213 浏览

.htaccess - RewriteCond - 没有价值的反向引用

遇到了这个奇怪的问题:我正在尝试将这个地址 www.mydomain.com/index.asp?pag=XXX&id=YYY 翻译成 www.mydomain.com/XXX-YYY

我正在尝试

但我得到“%1-%2”,因为结果似乎我无法正确显示它们,我错在哪里?

0 投票
1 回答
1236 浏览

java - Matcher.replaceAll() 中的多个反向引用

Matcher.replaceAll()使用单个 反向引用效果很好(即Matcher.replaceAll("$2"))。

但我无法使其与两个或多个反向引用一起工作,例如Matcher.replaceAll("$1$2").

是否Matcher.replaceAll()支持多个反向引用?如果是这样,使用它的正确语法是什么?

0 投票
6 回答
16540 浏览

regex - 在正则表达式中否定反向引用

如果字符串具有这种预测格式:

其中 " (引号)也可能是 ' (单引号),并且结束字符(' 或 ")将与开始字符相同。我想匹配引号之间的字符串。

(两个 \s 允许 = 符号附近的任何空格)

第一个“捕获的组”(在第一对括号内) - 应该与应该是 ' 或 " 的开头引号匹配然后 - 我应该允许任何数量的字符不是第一组中捕获的字符,然后我期望在组中捕获的字符(括起来的引号)。

(所需的字符串应在第二个捕获组中捕获)。
但这不起作用。

这样做:

但我想确保左引号和右引号(双引号或单引号)相同。


编辑
目标基本上是获取一个锚的开始标签,该锚的类属性中包含某个类名,我想涵盖类属性的罕见情况,包括 (') 或 (")。

遵循此处的所有建议,我使用了以下模式:

含义
找到一个标签打开的标志。
允许任何空格。
找到单词a。
允许任何非结束标签。
Find "class (any spaces) = (any spaces)"
获取开引号,以下之一:(" or ' or \" or \')。
来自 Alan Moore 的回答:允许任何不是开头引号的字符。
find classname
允许任何不是开头引号的字符。
找到与开头相同的结尾引号。
允许任何未关闭标签字符。
找到结束标记 char。

0 投票
1 回答
328 浏览

asp.net - c#中的ASPX属性正则表达式解析

我需要使用正则表达式在 ASPX 文件中查找属性值。

这意味着您无需担心 HTML 格式错误或任何与 HTML 相关的问题。

我需要找到特定属性(LocText)的值。我想得到引号内的内容。值内的任何 ASPX 标记(例如 <%=、<%#、<%$ 等)对于此属性没有意义,因此被视为其一部分。

我开始使用的正则表达式如下所示:

这很好用,第一组,即结果文本,获取除双引号之外的所有内容,双引号是不允许的(必须使用 " 代替)

但是 ASPX 文件允许使用单引号 - 然后必须应用第二个正则表达式。

我可以使用这两个正则表达式,但我正在寻找一种连接它们的方法。

这也有效,但似乎效率不高,因为它创建了不必要的组数。我认为这可以通过使用反向引用以某种方式完成,但我无法让它工作。

我认为通过这个,我将单引号/双引号保存到第一组,然后我告诉它读取不是第一组中找到的字符的任何内容。这再次被第一组的引用所包围。显然,我错了,它不是那样工作的。

有什么办法,如何将前两个表达式连接在一起,创建最少数量的组,其中一个组是我想要获得的属性的值?是否可以对单/双引号值使用反向引用,还是我完全误解了它们的含义?

0 投票
1 回答
2700 浏览

xml - Notepad++ 正则表达式反向引用丢失

我有这个 HTML 部分:

这一行存在于很多文件中。

我需要将其替换为:

通常的正则表达式(Ctrl + F)效果很好。不幸的是,替换文本太长了,不能在通常的正则表达式中使用,所以我使用了 TextFX 的高级搜索和替换插件。

这是我的发现:

这是我的替换:

寻找作品(即该行被突出显示) 然而,替换没有。我得到了这个:

在“查找/替换”窗口中检查了这些选项:

  • 正则表达式
  • 自动抓取查找文本

提前致谢

0 投票
2 回答
788 浏览

regex - 在 R 正则表达式中使用超过九个反向引用

下面的代码不起作用,因为无法正确读取 \10、\11 等的替换字符串。它将 \10 读取为 \1 并打印 0,你能帮我解决它吗?其中一个线程中有一个答案,说我应该使用捕获或命名组,但我并不真正了解如何使用它们。

0 投票
1 回答
527 浏览

php - PHP preg_replace_callback 正确转义以处理哈希符号('#')

我正在使用 Twitter 提要进行一些工作,并希望将任何主题标签转换为 clicable URL。

井号标签是一个井号 ('#'),后面紧跟一个充当搜索标签的词 - 并且不包含空格。

一个例子是......

这里有两个标签,#Shoreditch 和#AutoClubRev。

这些应分别成为以下链接...

https://twitter.com/#!/search?q=%23Shoreditchhttps://twitter.com/#!/search?q=%23AutoClubRev

我假设我应该在这里使用 preg_replace_callback 而不仅仅是 vanilla preg_replace,因为我正在尝试获取反向引用 ($1) 并更改它而不仅仅是显示它。但我当然可能是错的。我不关心使用哪个功能——只要它能完成工作并且相对有效。

谢谢,皮特

0 投票
1 回答
76 浏览

php - 在 modrewrite 反向引用中找不到错误

我想将内容显示为(不存在的)子文件夹。所有这些子文件夹字符串都应发送到 file.php 并作为变量附加:“n”。

我的 PHP 脚本已经可以正常工作了。(如果我在地址栏 file.php 中附加变量会显示它应该显示的所有内容。)但是我的 .htaccess 定义中似乎至少有一个错误,我已经好几天都找不到了。(仍然可以访问所有页面,但由于某种原因,如果我键入任何字符串(仅限允许的字符)作为子文件夹,我将无法访问 file.php。(所有真实文件都应保持可访问性,因为它们是真实文件或子文件夹,应通过我的 .htaccess 文件中的条件将其排除在重写规则之外。)

谁能给我一个提示,为什么我的定义不符合我的要求?

0 投票
2 回答
256 浏览

php - PHP 反向引用后跟以数字开头的变量

我正在研究一种更新 config.php 文件的动态方法,但遇到了一个我无法完全解决的有趣故障。下面是我更新 config.php 文件的代码:

逻辑相当合理。它搜索以“config-”为前缀的任何 POST 变量,然后使用“config-”之后的所有内容作为我们配置文件中要更新的键的名称。配置文件采用以下形式:

在 90% 的情况下,这可以完美运行,但是如果$value以数字开头,则替换过程中将完全忽略$3第一个数字。$value

例如,我的配置文件中有以下值:

如果我不更改此值并保持键不变但提交我的表单,那么这一行突然看起来像这样:

缺少单引号会阻止配置文件解析(破坏整个站点),并且我们丢失了引导数据!阅读PHP preg_replace 手册后,我尝试在多个位置使用大括号(修改“示例 #1 使用反向引用后跟数字文字”)。以下方法均无效:

前 3 个导致完全相同的问题,对替换没有影响。第四个根本不起作用(语法错误),第五个实际上导致每个反向引用都被忽略。我也尝试过像这样使用单引号和连接:

同样,我遇到了与之前的 3 个示例和我的原始脚本相同的问题。

希望有人以前解决过这个问题,或者至少有一个新的想法。

0 投票
1 回答
458 浏览

php - preg_replace 反向引用日期函数

PHP 5.2.15

我正在尝试用日期函数替换 {date[F]}。

我有很好用的模式。

我已经尝试过 preg_replace_callback 但即使我使用 create_function() 它似乎也不起作用

我尝试的方法大多是未定义的错误。