使用正则表达式捕获 slug1/slug2/slug3 页面的正确方法



我正在尝试使用此重新模式r'({2}.+?){2}'以从文本中捕获((slug1/slug2/slug3 someword))表达式。

它给了我整个表达本身,即'((slug1/slug2/slug3 someword))'。然后我使用它Python:split解析它以分别获得slug1/slug2/slug3someword

我如何使用带有组的纯正则表达式模式获得相同的结果。应该是什么模式?任何帮助,不胜感激。

假设 slug 不能包含空格:

({2}(S*)s(.*?)){2}

更明确地说:

({2}  # two literal '(' characters
(S*)  # any number of non-whitespace characters, captured in group 1
s     # any whitespace character
(.*?)  # any number of characters, reluctantly, captured in group 2
){2}  # two literal ')' characters

因此,slug1/slug2/slug3将属于第 1 组,someword 将属于第 2 组。

我想出了这个正则表达式:

/([w/]+) (w+)/

它使用以下命令正确计算:

perl -e '$a="((slug1/slug2/slug3 someword))"; if ($a =~ /([w/]+) (w+)/) {print "$1 $2"}'

相关内容

最新更新