【发布时间】:2010-10-03 14:27:45
【问题描述】:
我有一个从ldapsearch 输出的对象列表,如下所示:
dn: cn=HPOTTER,ou=STUDENTS,ou=HOGWARTS,o=SCHOOL
dn: cn=HGRANGER,ou=STUDENTS,ou=HOGWARTS,o=SCHOOL
dn: cn=RWEASLEY,ou=STUDENTS,ou=HOGWARTS,o=SCHOOL
dn: cn=DMALFOY,ou=STUDENTS,ou=HOGWARTS,o=SCHOOL
dn: cn=SSNAPE,ou=FACULTY,ou=HOGWARTS,o=SCHOOL
dn: cn=ADUMBLED,ou=FACULTY,ou=HOGWARTS,o=SCHOOL
到目前为止,我有以下正则表达式:
/\bcn=\w*,/g
返回结果如下:
cn=HPOTTER,
cn=HGRANGER,
cn=RWEASLEY,
cn=DMALFOY,
cn=SSNAPE,
cn=ADUMBLED,
我需要一个返回如下结果的正则表达式:
HPOTTER
HGRANGER
RWEASLEY
DMALFOY
SSNAPE
ADUMBLED
我需要在我的正则表达式中进行哪些更改以使模式(cn= 和逗号)不包含在结果中?
编辑:我将使用sed 进行模式匹配,并将输出通过管道传输到其他命令行实用程序。
【问题讨论】:
-
您使用哪种语言?
-
我会看看这个优秀的在线正则表达式教程:regular-expressions.info。我就是这么学的。
-
哈利波特+1,哈哈
-
老实说,我不会在这里使用正则表达式。你有一个简单的逗号分隔格式的数据——利用它!使用您喜欢的语言拆分功能以逗号拆分,然后以 = 拆分,然后您无需正则表达式即可获得键和值。
-
@Robert P:我同意。正则表达式很棒,但如果可以的话,请使用更简单的工具。此外,@eleven81,您可能希望将您的问题重命名为更适合有类似问题的人的索引。即“如何正确匹配正则表达式?”
标签: regex sed pattern-matching