我正在尝试使用此重新模式r'({2}.+?){2}'
以从文本中捕获((slug1/slug2/slug3 someword))
表达式。
它给了我整个表达本身,即'((slug1/slug2/slug3 someword))'
。然后我使用它Python:split
解析它以分别获得slug1/slug2/slug3
和someword
。
我如何使用带有组的纯正则表达式模式获得相同的结果。应该是什么模式?任何帮助,不胜感激。
假设 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"}'