1

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

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

如何使用带有组的纯正则表达式模式获得相同的结果。应该是什么模式?任何帮助表示赞赏。

4

2 回答 2

1

假设 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 组。

于 2012-06-07T13:07:57.770 回答
0

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

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

它使用以下命令正确评估:

perl -e '$a="((slug1/slug2/slug3 someword))"; if ($a =~ /([\w\/]+) (\w+)/) {print "$1 $2"}'
于 2012-06-07T13:08:17.893 回答