gpt4 book ai didi

java 正则表达式 : negation of a match

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

虽然我阅读了大量有关该主题的文章(特别是使用环视),但我不明白是否可以使用正则表达式解决这种更一般的情况。

设置:
1) 在
中传递了一个输入正则表达式2) 输入正则表达式嵌入到负正则表达式中,这样
3) 匹配任何未被输入正则表达式识别

示例:

给定:

input regex: "[-//s]";


text: "self-service restaurant"

我想要一个否定正则表达式,其中嵌入我的输入正则表达式,以便我可以将我的文本匹配为:

"self", "service", "restaurant"

重要的是,否定正则表达式也应该能够匹配一个简单的字符串,例如:

"restaurant"

请注意,我想做的可以通过更改输入正则表达式来实现

"[-//s]"


"[^-//s]"

然而,我采用了一种更通用的方法,其中任何正则表达式都可以传递到否定正则表达式中。

最佳答案

您可以通过匹配或拆分来实现。

  1. 通过匹配。

    String s = "self-service restaurant";
    Matcher m = Pattern.compile("[^-\\s]+").matcher(s);
    while(m.find()) {
    System.out.println(m.group());
    }

您需要将模式放在否定字符类中以匹配除否定类中出现的字符以外的所有字符。

  1. 通过拆分。

    String s = "self-service restaurant";
    String parts[] = s.split("[-\\s]+");
    System.out.println(Arrays.toString(parts));

这会根据一个或多个空格或连字符拆分您的输入。稍后您可以加入他们以获得所需的输出。

  1. 通过替换。

    String s = "self-service restaurant";
    System.out.println(s.replaceAll("[-\\s]+", "\\\n"));

关于java 正则表达式 : negation of a match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29576704/

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