2011-06-26 9 views
3

現在、以下の正規表現を使用してLDAPパスから名前を抽出していますが、パスでカンマが使用されるまでうまく動作します。正規表現を使用してLDAPパスから名前を抽出します

現在の正規表現:I以下の例のLDAPパスで

CN=([^,]*).* 

は "デボラ\" を取得し、私はそれが "デボラ、ジェームズ" を返すようにしたいと思います。私は正規表現を理解していないと私はこの仕事をしようとする時間を費やした、誰も私はこれを解決することができますか?

CN =デボラ\、ジェームズ、OU =スタッフ、DC =コンプ、DC = comの

感謝。 ジェイク

答えて

1

あなたが制御された環境にいるとCNは常にOUによって発見されることを制御することができます場合は、使用して、これを行うことができます。

CN=(.*),OU= 

をあなたがそれを保証することはできません場合は、あなたのことができ

CN=(.*?)(?:,[A-Z]+=|$) 
+0

そのためのおかげではなく、これらの両方のは、私を残し – JakeHolt

+0

Deborah \、JamesStaff、DC = Comp、DC = com – JakeHolt

+0

申し訳ありませんが、何らかの形でコメントが追加されました。これはあなたのために働きますか?ありがとう – JakeHolt

0

を名前ではなく、正規表現を解析するためのLDAP APIを使用する必要があります:少し複雑ですが、他の属性はCNを、以下またはCNが最後であればあれば動作しますれ、これを使用しています。 Java JNDIでは、これはコンテキストからNameParserを取得することを意味します。

+0

すべてのLDAP APIがこの機能を提供するわけではありません。残念ながら、.NETのDirectoryServices APIはそうではありません(内部クラスがありますが、公開されていません)。 OPは彼がどの技術を使用していたかは言わなかった。 –

0

私はここに記載された他の回答を試みましたが、彼らはまだ共通名の外の値を返しました。私はグループが欲しくないので、これは私が思いついたものです。 DNまたはOU内のCNの場合は機能します。 (?私は< = CN = :(?)

)*(=、[A-ZA-Z] {0,2} = |。??$)

関連する問題