gpt4 book ai didi

java - 正则表达式不按分隔符过滤

转载 作者:行者123 更新时间:2023-11-30 07:59:28 25 4
gpt4 key购买 nike

我想创建一个正则表达式,我想要匹配,以防我的号码被逗号分隔。例如:

 1 OK
1,2,3 OK
1\n2,3 OK
1,\n Not OK
1,,2 Not OK
1,\n2 Not Ok

到目前为止我创建了这个表达式

 \d+(([,.|\n])+\d+)*

如果我用 + 将最后一个 * 更改为至少 1

 \d+(([,.|\n])+\d+)+

那么之前的所有场景都可以,但这个不行

  1 Not OK//And should be ok

我正在使用 matcher.find()

    Matcher matcher = Pattern.compile(pattern).matcher(number);
if (matcher.find()) {
System.out.println("total number:" + matcher.group(0));;
}

知道我在正则表达式中做错了什么吗?

最佳答案

您可以使用此正则表达式:

^\d+(?:(?:,|\n)\d+)*$

Java 正则表达式:

Pattern p = Pattern.compile("^\\d+(?:(?:,|\\n)\\d+)*$");

RegEx Demo

PS:要匹配文字\n,您需要:

^\d+(?:(?:,|\\n)\d+)*$

关于java - 正则表达式不按分隔符过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32156145/

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