正規表現:単一のキャプチャグループに一致したの異なる順序を返します

ルークPafford:

イムは、スマートカードからユーザーIDを抽出しようとしている、と私は、このパターンに一致する必要があります。 CN=LAST.FIRST.MIDDLE.0000000000

そして、この結果が戻ってきました: FIRST.LAST

私は自分のコードでこれをやっていた場合、これはnormaly簡単だろう。

# python example
string = 'CN=LAST.FIRST.MIDDLE.000000000'
pattern = 'CN=(\w+)\.(\w+)\.'
match = regex.search(pattern, string)

parsedResult = match.groups()[1] + '.' + match.groups()[0]

残念ながら、私が使用して、パターンマッチングいKeycloaks X.509 certmap Webフォームを私は、唯一の正規表現を使用することに限定していますし、正規表現は、唯一のキャプチャグループを含めることができます。ここで使用される実際のコード、ちょうど単一の正規表現は存在しないので、これは、HTMLフォームです。

私は、サブキャプチャグループを持っている、と第一、第二マッチしたグループを返し、その後、最初に一致したグループは、すべての主要なキャプチャグループ内でする必要があるかのように思えます。このような何かを行うことがことが可能ですか?

それがどのようなアプリが実行上にあるので、また、私たちはJavaでサポートされているものは何でも特徴に限定されていると仮定します。

ステファンKulow:

私はこの1つだけのキャプチャグループでは可能であるとは思いません。私が正しくkeycloakのドキュメントを読んでいる場合は、キャプチャグループは、実際には正規表現の結果です。だから、どちらかの元の順序にFIRSTまたはLASTまたはその両方を一致させることができますではなく、再発注。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=337290&siteId=1