java - csv 匹配中的 ANT 元素

标签 java regex ant

我需要编写一个正则表达式来匹配逗号分隔列表中的元素,忽略 , 附近的空格。 例如: elem1、elem2、elem3、elem4、elem5、elem6

任意:elem1 elem2 elem3 elem4 elem5 elem6 应该匹配。

不允许使用尾随逗号(行尾之前)。

我尝试了这种模式:
pattern="(^|/,)\s*@{value}\s*(/,|$)"
但它不起作用。 (假阴性)

我怎样才能做到这种模式?我的怎么了?

谢谢。

最佳答案

插值是你的问题。并且,您不能在两侧使用“,”,只能在一侧使用它。

编辑 - 也就是说,如果您在全局范围内搜索,则不能在两侧使用逗号。例如,如果您想找到某物的全部。如果只找到第一个匹配项,那么两边都有逗号就可以了。我不了解java,但是,你不能只是将一个列表放入正则表达式中并期望它匹配,除非它首先设置为交替。就像“(?:^|,)\\s*(?:elem4|elem6)\\s*(?=,|\$)”。当然,您需要对空格 \\s 进行另一次转义。

$value = '(elem.)';  
$rx    = "(?:^|,)\\s*$value\\s*(?=,|\$)";

$rx    = '(?:^|,)\s*(elem.)\s*(?=,|$)';

在 Perl 中:

use strict;
use warnings;

my $value = '(elem.)';

my $str = ' elem1, elem2 ,elem3, elem4 ,elem5 ,elem6 ';

my $rx = "(?:^|,)\\s*$value\\s*(?=,|\$)";

while ( $str =~ /$rx/g ) {
   print "'$1'\n";
}

输出

'elem1'
'elem2'
'elem3'
'elem4'
'elem5'
'elem6'

关于java - csv 匹配中的 ANT 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5030340/

相关文章:

ant - 如何告诉 ant 构建文件将 bin 目录中的所有文件递归添加到 jarfile 中?

ant - 如何在不使用 IDE(Netbeans 等)的情况下使用外部库编译 java 文件?

java - 如何在Camel中将rejectExecution值更改为True

java - 如何从Android上的java webservice获取图像

ant - 如果变量未定义则任务失败

java - 正则表达式以避免某些字符和某些字符组合

javascript - 序列化多个重复项的数组

java - 重定向不适用于 Spring Boot 应用程序中的 Thymeleaf

java - 类的实例

c# - 正则表达式 - 仅查找和替换完整的字符串出现(不是部分匹配)