javascript - 如何选择此正则表达式中的最后一组?

标签 javascript regex

我想选择 {} 中包含的最后一个组,但是一旦我开始在正则表达式末尾输入 \s,它就不会选择第二行不再了。有人可以向我解释一下吗?

正则表达式:

\s*(.{10})\s*(\d*)\s*(.{3})\s*(.*?)(\((?>\((?<c>)|[^()]+|\))\))\s\{(.*)\}

测试字符串:

0.00002211      55   7.7  "'Allo 'Allo!" (1982) {A Bun in the Oven (#8.0)}
0...222.02      14   6.7  "$100 Taxi Ride" (2001)

这是我想做的事情的链接:https://regex101.com/r/8qrKxq/2

谢谢!

<小时/>

更新

我期望的是这里发生的事情:https://regex101.com/r/8qrKxq/6“$#*!我爸爸说” 处,然后是前 2 个系列名称,它会捕获正确的组。但在那之后不知何故它搞砸了,我不知道如何解决这个问题..

最佳答案

您的正则表达式不包含第二行,因为它不包含 {.*} 类型的内容。如果您尝试使用正则表达式,例如:

0.00002211      55   7.7  "'Allo 'Allo!" (1982) {A Bun in the Oven (#8.0)}
0...222.02      14   6.7  "$100 Taxi Ride" (2001) {9}

它将采用 {} 中包含的 9。如果您希望选择 {} 可选,那么您应该使用

\s*(.{10})\s*(\d*)\s*(.{3})\s*(.*?)(\((?>\((?<c>)|[^()]+|\))\))(?:\s(\{(.*)\}))?

demo

关于javascript - 如何选择此正则表达式中的最后一组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41850746/

相关文章:

javascript - 这个 Chrome 调试器 VM 脚本是什么?

javascript - 当我想用nodejs进行mysql插入时,为什么会出现解析错误

java - 正则表达式不适用于 java 中的多个字符串拆分?

正则表达式替换特殊注释

javascript - 网站 : Same universal menu on different pages

javascript - 与多层数组匹配字符串

javascript - 在Vue js中显示错误消息

c# - 正则表达式匹配单词但不匹配 html 实体

Javascript 正则表达式匹配由一对字符括起来的项目?

java - 如何绕过 "This expression is not supported in the current option setting"错误