1

总的来说,我对 RegEx 还是有点陌生​​。我正在尝试从字段中检索名称,以便将它们拆分以供进一步使用(使用 Pentaho Data Integration/Kettle 进行数据提取)。这是我给出的字符串的示例:

CN=Name One/OU=Site/O=Domain;CN=Name Two/OU=Site/O=Domain;CN=Name Three/OU=Site/O=Domain

我想返回以下格式:

Name One;Name Two;Name Three

Kettle 使用 Java 正则表达式。

4

2 回答 2

1

这听起来像您想要基于正则表达式的替换和替换。如何正确地做到这一点取决于您的语言。但是使用 sed 我会这样做:

echo "CN=Name One/OU=Site/O=Domain;CN=Name Two/OU=Site/O=Domain;CN=Name Three/OU=Site/O=Domain" |\
sed 's/CN=\([^\/]*\)[^;]*/\1/g'

如果您打算稍后将其拆分,您可能只想匹配名称并将它们返回给我一个循环。perl 中的示例代码:

#!/usr/bin/perl
$line="CN=Name One/OU=Site/O=Domain;CN=Name Two/OU=Site/O=Domain;CN=Name Three/OU=Site/O=Domain";
for $match ($line =~ /CN=([^\/]*)/g ){
  print "Name: $match\n";
}
于 2010-09-10T14:14:08.163 回答
0

假设你在 file.txt 中有它:

sed -e  's/\/OU=Site\/O=Domain//g' -e 's/CN=//g' file.txt
于 2010-09-10T14:05:41.813 回答