Regex Yahoo管道中的正则表达式

Regex Yahoo管道中的正则表达式,regex,replace,yahoo-pipes,capturing-group,Regex,Replace,Yahoo Pipes,Capturing Group,我想知道在yahoo pipes的Regex模块中,应该应用什么正则表达式来替换55中的1-55,以便只获取55 谢谢比赛 \d+ - (\d+) of \1 与 您可以尝试匹配以下内容: \d+ - (\d+) of \1 并替换为第1组捕获的$1 \d是数字,+是一个或多个数字。(…)是一个组,而\1引用该组匹配的内容。因此,这将匹配如下字符串: num1 - num2 of num2 | | \________/ must match

我想知道在yahoo pipes的Regex模块中,应该应用什么正则表达式来替换55中的
1-55
,以便只获取
55

谢谢

比赛

\d+ - (\d+) of \1 


您可以尝试匹配以下内容:

\d+ - (\d+) of \1
并替换为第1组捕获的
$1

\d
是数字,
+
是一个或多个数字。
(…)
是一个组,而
\1
引用该组匹配的内容。因此,这将匹配如下字符串:

num1 - num2 of num2
        |        |
        \________/ must match
工具书类
  • -有一个非常好的教程
  • -更全面的正则表达式教程

变异 此模式是一个轻微的修改,在空白匹配方面更加灵活:

\d+\s+-\s+(\d+)\s+of\s+\1
它与前面的模式类似,但在以前只有一个文本空格字符的地方,我们现在使用
\s+
,这是一种匹配任意数量的空白字符的非空序列的模式。这包括换行符、选项卡等

如果第三个数字不必与第二个数字相同,则只需使用另一个
\d+
而不是
\1

\d+\s+-\s+\d+\s+of\s+(\d+)
现在,这将匹配字符串,如
“149中的1-20”
,可以自由地使用间距。现在移动括号以匹配第三个数字,因此,如果整个字符串要替换为该数字(
149
,在本例中),只需替换为
$1

如果要单独捕获所有3个数字,可以编写如下内容:

(\d+)\s+-\s+(\d+)\s+of\s+(\d+)
\___/       \___/        \___/
  1           2            3

现在第一个数字由第1组捕获,第二个数字由第2组捕获,第三个数字由第3组捕获。

谢谢大家,我试过了,但仍然得到了55的1-55,下面是管道URL plz检查谢谢我试过了,但仍然得到了55的1-55,下面是管道URL plz检查@Balaji:请参阅我的最新版本。我尝试了新的模式,它的工作。很好,非常感谢,但是如果它是149中的1-20,那么现在我怎么能只提取149,在这种情况下num1和num2没有match@Balaji:问题是字符串中的空格实际上不仅仅是一个简单的空格。您可以尝试匹配
*
并查看它是否没有捕获整个字符串。其中有一些换行符,但查看器并没有将其呈现为这样。使用
\s+
解决了这个问题。哦,很抱歉我错过了括号,非常感谢,你让我度过了美好的一天:)再见
(\d+)\s+-\s+(\d+)\s+of\s+(\d+)
\___/       \___/        \___/
  1           2            3