总体而言,我仍然是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

水壶使用Java正则表达式。

有帮助吗?

解决方案

听起来您想根据正则替代和替换。如何正确完成这取决于您的语言。但是有了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";
}

其他提示

假设您将其包含在file.txt中:

sed -e  's/\/OU=Site\/O=Domain//g' -e 's/CN=//g' file.txt
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top