当前位置: 首页 > 知识库问答 >
问题:

正则表达式:第2场比赛从第1场比赛的最后一个符号开始

盖博简
2023-03-14

是否可以编写一个正则表达式,其中匹配1的最后一个符号是匹配2的开始符号?我喜欢匹配括号中的所有数字,并用管道隔开。情况也很复杂,因为比赛只能有一组深度。

这是我的字符串Text(1234 | 5678 | 901)Text(222)Text(333 | 444)

我想得到:

  • 1234年

但是正则表达式应该不匹配:

  • 文本(123文本
  • 文本|123)文本
  • 文本|123文本

我只找到了这个正则表达式{1}(\d)和这个问题,他还匹配了这样的文本(123 Text)。

我有一个关于regex101的例子:https://regex101.com/r/taOU8o/1

共有2个答案

顾涵衍
2023-03-14

您可以使用

\(\d+(?:\|\d+)*\)

请参阅正则表达式演示。详细信息:

  • \(-a字符-d-一个或多个数字

颜瀚漠
2023-03-14

由于您在regex演示链接中选择了Javascript,如果支持lookback中的量词,您可以使用:

(?<=\((?:\d+\|)*)\d+(?=(?:\|\d+)*\))

图案匹配:

  • <代码>(?
  • (?:\ |\d)*匹配可选重复的|和1位数

正则表达式演示

const regex = /(?<=\((?:\d+\|)*)\d+(?=(?:\|\d+)*\))/g;
const str = `Text (1234|5678|901) Text (222) Text (333|444)
Text (123 Text
Text |123) Text
Text |123 Text
`;

console.log(str.match(regex));
 类似资料:
  • 我有以下文字: 我想匹配每个分子,包括它的系数。下面的正则表达式几乎正常工作,但是空格字符,就在最后一次匹配之前,正在匹配,这不应该。这是我正在使用的正则表达式:

  • 好的,基本上,我试图遍历大量包含文件超链接的html代码。我在用preg_match_all找到所有发生的事情。然而,它永远不会返回预期的匹配量。 快照HTML代码(值为$content): PHP代码: 上面的代码只为我返回第一个匹配项。奇怪的是,回荡着: 所以我想我应该数一数数组,然后把它绕成一个for循环来解决这个问题。然而:

  • 这是怎么做到的?我已经设置了,但我不确定还需要做什么。

  • 问题内容: 如何限制e004_n07中匹配/替换前导零?但是,如果任何一项包含全零,那么我需要在该项中保留一个零(请参见下面的示例)。对于输入字符串,第一个值将始终有3位数字,第二个值将始终有2位数字。 输入和输出示例 是否可以单独使用re.sub完成此操作,还是需要使用re.search/re.match? 问题答案: 如果只想在字母后删除零,则可以使用: 替换为反向引用。请参阅regex演示。

  • 本文向大家介绍sed 第一次比赛后插入行,包括了sed 第一次比赛后插入行的使用技巧和注意事项,需要的朋友参考一下 示例 给定一个file.txt具有以下内容的文件: 您可以在第一个与a命令匹配的行之后添加新行。 对于可移植的用途,该a命令后必须紧跟一个转义的换行符,并在其自己的一行上加上要添加的文本。 GNU sed 某些版本的sed允许文本附加在a命令中: 上面的命令将输出:        

  • 问题内容: 我有一个包含一堆字符串的文件,例如“ size = XXX;”。我第一次尝试使用python的re模块,并且对以下行为感到有些困惑:如果我在正则表达式中使用管道作为“或”,我只会看到返回的匹配项。例如: 匹配的“大小=”部分不见了。(但是,肯定会在搜索中使用它,否则将会有更多结果)。我究竟做错了什么? 问题答案: 您遇到的问题是,如果尝试匹配的正则表达式捕获组(即,括号中包含的正则表达