1

この再パターンを使用して、テキストから式r'\({2}.+?\){2}' をキャッチしようとして((slug1/slug2/slug3 someword))います。

それは私に式全体を与えてくれます'((slug1/slug2/slug3 someword))'。次に、それを使用して解析し、個別Python:splitに取得slug1/slug2/slug3somewordます。

グループで純粋な正規表現パターンを使用して同じものを取得するにはどうすればよいですか。あるべきパターンは?どんな助けでも大歓迎です。

4

2 に答える 2

1

スラッグに空白を含めることはできないと仮定します。

\({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 に答える