2

質問の仕方が思いつかなかったので、あいまいなタイトルで申し訳ありません。

数百行の CSV ファイルがあり、数千の LDAP 識別名が含まれています。サンプル行の 1 つは次のようになります。

CN=John Doe,OU=Miami,DC=contoso,DC=com; CN=Spamela Anderson,OU=Los Angeles,DC=contoso,DC=com; CN=Cosmo Kramer,OU=Subfolder,OU=Subfolder,OU=ParentFolder,DC=FABRIKAM,DC=com; CN=Bob Barker,DC=contoso,DC=com
CN=Luke Skywalker,OU=Tattoine,DC=contoso,DC=com; CN=Brad Pitt,OU=Hollywood,DC=contoso,DC=com; CN=Mickey Mouse,OU=Users,DC=contoso,DC=com
CN=Ted Nugent,OU=Houston,DC=FABRIKAM,DC=com; CN=Carl Sagan,DC=Uranus,DC=contoso,DC=com

FABRIKAM.COMドメインにある識別名を削除したいと思います(dc=fabrikam,dc=com)。サンプルでは、​​次のものを削除したいと思います。

;CN=Cosmo Kramer,OU=Subfolder,OU=Subfolder,OU=ParentFolder,DC=FABRIKAM,DC=com

私は使用しようとしました:

CN=(.*)?,DC=fabrikam,DC=com

しかし、これは、行の先頭から"DC=fabrikam,dc=com" (私のサンプルでは、​​John Doe と Spamela Anderson も含まれます) までの"CN=" の最初の出現を検出します。

境界として "DC=fabrikam,DC=com"の左側にある "CN="の最初の出現を見つける方法はありますか?

(私は Notepad++ または Programmer's Notepad のいずれかを使用します)

4

1 に答える 1

1

が値に表示されず、異なるレコードを区切るためにのみ使用されると想定できる場合は;、これを使用できます。

CN=[^;]*,DC=fabrikam,DC=com

上記の正規表現は、複数の行から一致を取得する場合があることに注意してください。

ファイルが\n行を区切るために使用する場合、これは簡単な修正です。

CN=[^;\n]*,DC=fabrikam,DC=com
于 2013-02-03T08:43:43.440 に答える