问题标签 [capture-group]
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.
ruby - 具有命名捕获支持的 Ruby 正则表达式匹配枚举器
考虑这样一个字符串来提取时间信息:
str = "Sun rises at 6:23 am & sets at 5:45 pm; Moon comes up by 7:20 pm and goes down by 3:45 am"
我希望有一个像scan这样的枚举器,但它可以让我得到MatchData对象而不是可以从 scan 获得的数组。
例如,我可以写:
str.scan( /(?<time>\d:\d{2}) (?<meridiem>am|pm)/ ){ |arr| p arr }
要得到:
["6:23", "am"]
["5:45", "pm"]
["7:20", "pm"]
["3:45", "am"]
但是,我想知道是否有这样的事情:
str.match_all( /(?<time>\d:\d{2}) (?<meridiem>am|pm)/ ){ |md| p md }
要得到:
#<MatchData "6:23 am" time:"6:23" meridiem:"am">
#<MatchData "5:45 pm" time:"5:45" meridiem:"pm">
#<MatchData "7:20 pm" time:"7:20" meridiem:"pm">
#<MatchData "3:45 am" time:"3:45" meridiem:"am">
在上一个问题中看到了答案,但我觉得这是一个不雅的解决方案。因此,请检查以防在发布答案后的过去几年中情况发生了变化。
regex - What is the purpose of non-matching groups
I was reading the Groovy tutorial and they talk about how you can create non-matching groups by leading the group off with ?:
. This way the group will not come up on the matcher. What I dont understand is why you would want to explicitly say do not match this group. Wouldnt it be simpler to just not put it into a group?
java - 捕获组 REGEX Java
我想在我的正则表达式中捕获这些组,但似乎我没有按应有的方式编写它。考虑以下几行:
当我尝试捕获第一组和第二组时,我遇到了 IllegalStateExcpetion。我真的不知道我的正则表达式有什么问题,我也尝试了几种不同的写法=/。
在此先感谢您的帮助。
java - java 正则表达式用空格分割字符串(除了左右都是数字或 - )
我有这个字符串如何拆分 5-28 14:00 - 5-28 18:00 the60s(.corp)。我想用空格分割它,除非空格有数字或-在它们周围。
我想要的结果是:
谢谢。
以下是我的代码:
首先我用 @ 替换右边的空格,然后用 @ 分割字符串。但它不起作用。
regex - 后处理输出文件时的 Perl REGEX 重复捕获组
我正在处理科学格式的一串数字。例如
现在我想为 perl 编写一个正则表达式,它允许我捕获列表中的第 i 个值。所以我目前的设置如下
这会给我第一个号码。如果我愿意,我希望能够捕获第 7 个或第 50 个,而不必编写非常长的正则表达式。
有没有一种简洁的方法来做到这一点?
提前致谢。
regex - 正则表达式:多个捕获组 - 搜索和替换 - DNS 日志
遇到一个正则表达式问题,需要帮助。基本上,我有这样的 DNS 日志:
在每个事件结束时,您会看到类似“(14)ussp-usrv-rt01(3)domain(3)com(0)”的内容
基本上,我正在尝试编写正则表达式将其转换为“ussp-usrv-rt01.domain.com”
我的策略是将 NOERROR]\s+\w+\s+ 之后的所有内容捕获到行尾,然后用句点替换括号。有麻烦得到它恰到好处。
有什么建议么?谢谢!
regex - 具有捕获组的有效正则表达式,但 sed 脚本不起作用
我有一个有效的 RegEx 模式,可以捕获三组字符串。我试图在 sed 脚本中使用它来执行查找和替换操作,但我不断收到以下错误:
我的脚本如下所示:
我正在尝试编辑的文件有一行内容:
...我想要的结果是:
我在这里确认了我的 RegEx:http ://regex101.com/r/qO4jE5/1
...并在这里仔细检查:http ://regexraptor.net/
知道我做错了什么吗?
javascript - 无法匹配 JavaScript 正则表达式中的特定组
我正在使用Rainbow.js库向 LaTeX 代码添加语法高亮,如下所示:
但它未能突出显示组#3
,即使——根据我所看到的一切——该组正在被捕获。知道可能出了什么问题吗?为什么它会匹配第一组而不匹配第三组?
javascript - 多行字符串中任意数量的捕获组
我有一个长的 Markdown 格式的字符串,它由一个或多个标题的重复部分和多行描述组成,如下所示:
此顺序偶尔会与其他文本打断,交织---
在下一个标题之间。
我希望使用 JS 的正则表达式来处理它,以便在单独的捕获组中捕获标题、链接、描述和评论。理想情况下,从给出的示例中,我想得到类似的东西:
我不会撒谎 - 我的正则表达式技能可能需要一些修饰,但是我设法解决了这个问题,将其限制为单个标题(使用类似于 的正则表达式/\*\*\[(.*)\]\((.*)\)\s+(.*)\*\*.*\s+((?:.*\s)*?)?---/g
)。对于未指定数量的它们,我不确定如何将单独的片段收集到简洁的组中,因为无论我尝试什么,我要么得到属于一个项目的标题的单独匹配项,要么第二个和后续的标题与评论。
仅使用正则表达式可以吗?我想避免按项目边界(在这种情况下)拆分**[
并---
从那里进一步切碎,因为这似乎不如单个正则表达式匹配那么优雅。
regex - 为什么列表上下文中的替换不返回捕获列表?
根据,在列表上下文中,具有正则表达式且具有捕获组和修饰符perlop
的匹配运算符将返回捕获列表:m//
/g
perlop
但是,我在任何一个或prelre
任何提及中都找不到替换运算符为什么会改为 - 即使在列表上下文中 - 返回捕获的数量:
为什么以及在哪里记录该行为?