RegEx删除不需要的文本

时间:2010-09-10 14:01:32

标签: regex string pentaho kettle

总的来说,我对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正则表达式。

2 个答案:

答案 0 :(得分: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";
}

答案 1 :(得分:0)

假设你在file.txt中有它:

sed -e  's/\/OU=Site\/O=Domain//g' -e 's/CN=//g' file.txt