gpt4 book ai didi

java - csv 匹配中的 ANT 元素

转载 作者:行者123 更新时间:2023-12-01 15:56:04 25 4
gpt4 key购买 nike

我需要编写一个正则表达式来匹配逗号分隔列表中的元素,忽略 , 附近的空格。例如: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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com