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