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