问题标签 [xregexp]

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 回答
176 浏览

javascript - Xregexp javascript 可选命名组,由空格分隔

我正在研究一个支持以字母开头的命名参数的Xregexp表达式。这是我的表达:

它运行良好,但问题是我想将该p:<prize>组设为可选,我应该使用哪个表达式?

当有空白时,我也试图结束捕获

例子:

我想要的是 :

duration:1h 5m 1s title:Title test [p:prize]<-optionnal group

我想将该prize组设为可选

匹配当前表达式:

duration:1h 5m 1s title:Title test p:Something random

分组结果:

  • time1h 5m 1s

  • titleTitle test

  • prizeSomething random

0 投票
0 回答
710 浏览

javascript - 将 window.location.href 和 document.referrer 组合成一个变量

我需要在单个变量中获取当前网页 url,例如:

但问题是脚本有时会在跨域 Iframe中使用,有时会在同一个域中使用。由于window.location.href在跨域 iframe 中不起作用,所以我已经测试 x = document.referrer了跨域 iframe(只读)并且它工作正常。但是我需要在一个变量中同时使用这两个选项,这样我就可以通过.match()Javascript 中的方法在 url 验证中使用它。

我试图像这样结合,但它不起作用

我的完整代码在这里:

//获取 url - 这部分不起作用

//网址验证-- 这部分工作正常


我不知道是否真的可以合并,但否则我想我必须重复这个脚本两次。1 用于跨域 Iframe,而 2 用于同一域。

我是 Javascript 的新手并且被困在这里,所以任何帮助和方向都将是救命稻草

0 投票
1 回答
58 浏览

regex - 捕获的组变量在 XRegexP javascript 中不起作用

如果我删除这样的名称,它会起作用

但我想命名我缺少的变量?

我匹配的文本是它捕获的 1000-10000,但是它不保存捕获变量

0 投票
1 回答
106 浏览

regex - Perl regexp for "Reply-To:" then characters then only "@domain1.fr" or "@domain2.fr"

我想写一个 Perl 正则表达式,如果一个字符串给出一个匹配

  1. 以“回复:”开头
  2. 以任意数量的字符继续
  3. 仅以“@domain1.fr”或“@domain2.fr”继续
  4. 以任意数量的字符结尾

例子 :

  • 回复:abc def@domain1 必须匹配
  • 回复:abc def@domain2 必须匹配
  • 回复:abc def@domain3 不能匹配

我试过了

  • 回复:abc def@domain1 不匹配
  • 回复:abc def@domain2 不匹配

问题是从与 domain1 AND domain2 不同的匹配域中排除。因为,如果我想从仅与 domain1 不同的匹配域中排除,我输入

它工作得很好。

0 投票
1 回答
509 浏览

javascript - 如何仅使用几个插件加载 XRegExp?

我搜索了 XRegExp 的网站和 GitHub自述文件。那里唯一的例子 load xregexp-all.js,这正是我不想做的,因为它加载了所有的插件。在 SO 上搜索,我发现了这样的例子:

但尝试上述只是导致ReferenceError: exports is not defined

如何仅加载 XRegExp 的一些插件?

0 投票
0 回答
33 浏览

javascript - XRegExp 和 unicode

0 投票
1 回答
430 浏览

javascript - 'XRegExp' 未使用 ie11 定义

我正在使用 XRegExp 检查 unicode 正则表达式。它在我测试过的任何浏览器中都没有问题,除了在 IE11 中。

在我的脚本中,我将要检查的正则表达式定义为:

在 ie11 中出现以下错误:

SCRIPT5009:“符号”未定义
xregexp.all.js (1730,11)
SCRIPT5009:“XregExp”未定义
jquery-3.3.1.slim.min.js (2,31232)

ie11如何解决这个问题?我检查过,ie11 没有在兼容模式下运行。我也阅读了 xregexp.com 上的文档,但我看不到任何解决此问题的方法。

我会很感激一些找到解决方案的指南,如果有可能解释为什么 ie11 会这样。

0 投票
1 回答
143 浏览

javascript - XRegExp: "Unmatched ')'" 然而一切似乎都是平衡的

我编写了以下代码行:

如您所见,它使用的是XRegExp库,因此我可以使用命名组其他 PCRE 功能。

我收到错误:

syntaxError: Invalid regular expression: /<!-- @[(?<component>[w+])[(*(?<classes>[w+])*)]*] -->/: Unmatched ')'

但是,我不明白无与伦比的地方在哪里)。据我所知,所有需要转义的括号都应该是,所有不应该的。

这是我要匹配的字符串:

<!-- @[NoteBlock(warning)] -->

这些也应该匹配:

<!-- @[NoteBlock(warning, high-level)] -->

<!-- @[NoteBlock] -->

这不应该匹配:

<!-- @[(warning, high-level)] -->

UDPATE:使用Regex101我设法让正则表达式通过:我已经将正则表达式更新为'<!-- @\[(?<component>[\w+]+)\(*(?<classes>[\w+]+)*\)*\] -->'但是我仍然遇到同样的错误。

0 投票
1 回答
156 浏览

javascript - XRegexP.matchRecursive - 添加回调功能以允许多个相同的实例

我正在使用 XRegexP 专门解析文本文件以查找两组预定义注释标签之间的内容,我无法更改这些标签,因此我需要找到一种方法使其与提供的文本一起使用。

我使用提供的正则表达式找到了所有标签的列表(链接中的示例还包括示例内容):https ://regex101.com/r/kCwyok/1/

然后,我使用 XRegexP 的matchRecursive函数来获取开始和结束标记之间的所有内容,这些内容几乎都可以正常工作。

我遇到的问题是CodeExample标签存在两次,标签相同但内容不同,但是,因为matchRecursive似乎没有回调函数,它只是同时在该组件的所有实例上运行匹配所以CodeExample返回所有内容的1 个或 10 个实例都没有关系。

有没有办法我可以实际添加某种回调到 matchRecursive?如果做不到这一点,有没有办法让 JavaScript 了解正在查看哪个 CodeExample 实例,以便我可以直接引用数组位置?我认为 XRegexP 知道它正在查看哪个数字 CodeExample 标记,那么有没有办法捕获它?

为了清楚起见,这是完整的代码:https ://pastebin.com/2MpdvdNA

我想要的所需输出是包含以下数据的 JSON 文件:

抱歉,如果我没有清楚地解释这一点,我已经看这个太久了。

0 投票
0 回答
34 浏览

javascript - 在 JavaScript 中全局区分大小写的 RegExp 中仅获取一个字符不区分大小写

我想用 Javasacript RegExp 找到成对的字符串: 1. 如果两个字符是相同的字母 2. 如果两个字符的大小写不同

所以'aA'是可以的,但'AA'不是。

该字符串是连续的,因此其中没有空格、换行符、逗号等 - 只有字母[a-zA-Z]

为此,我想出了以下正则表达式: /(.)((?!\1)(?i\1))/g

粗略解释:取一个字符,如果后面的字符相同(区分大小写),则丢弃第一个字符(继续),如果后面的字符不相同,但不区分大小写,那么我找到了一对。

正则表达式在不同的在线测试器中工作(它适用于很长的字符串),但我无法让它与 Javascript 代码一起工作。

所以这会引发 JS 代码错误:

我尝试使用 XRegExp,但没有任何效果:

我现在完全没有想法 - 正则表达式有效(经过测试),但不适用于 JS。:(

有谁知道如何解决这个问题?我的 JS / XRegExp 代码有错误吗?

PS:这是针对2018 年 12 月 5 日的Advent Of Code :)