gpt4 book ai didi

Java 正则表达式匹配除单个表达式之外的任何内容

转载 作者:行者123 更新时间:2023-12-02 09:18:17 25 4
gpt4 key购买 nike

我试图仅使用 replaceAll() 方法和单个正则表达式来替换除特定表达式(包括 java 中的数字)之外的所有内容。

给定字符串P=32 N=5 M=2我想独立提取每个变量。我可以将表达式 N=5 与正则表达式 N=\d 相匹配,但我似乎找不到可以匹配除 N 之外的任何内容的逆表达式=\d,其中 x 可以是任何数字。

我不想使用PatternMatcher,但仅使用正则表达式解决此问题。因此,对于 x、y、z 是任何数字,我希望能够替换字符串中除表达式 N=y 之外的所有内容 P=x N=y M=z:

String input = "P=32 N=5 M=2";
output = input.replaceAll(regex, "");
System.out.println(output);
// expected "N=5"

最佳答案

您可以使用

s = s.replaceAll("\\s*\\b(?!N=\\d)\\w+=\\d+", "").trim(); 

请参阅Java demoregex demo .

详细信息

  • \s* - 0+ 个空格
  • \b - 单词边界
  • (?!N=\d) - 紧邻右侧,不应有 N= 和任何数字
  • \w+ - 1+ 个字母/数字/_
  • = - = 符号
  • \d+ - 1+ 位数字。

关于Java 正则表达式匹配除单个表达式之外的任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58858148/

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