Java 正则表达式-我需要替换所有数字,但特定的3位数字除外

Java 正则表达式-我需要替换所有数字,但特定的3位数字除外,java,regex,Java,Regex,我想用“X”替换日志上的所有数字,但我想保留HTTP状态码作为信息 我一直在尝试不同的方法。他们都没有工作 str.replaceAll((?!5\d\d | 4\d\d)\d{3},“X”)//不起作用 //尝试发布到/shippings/X5X5X/select?调用者时出错。id=XX592:500内部\u服务器\u错误 我需要它是: 发件人: 致: 如果要选择的数字后面从不跟空格和大写字符a-Z,则可以使用负前瞻: \b[0-9]+\b(?! [A-Z]) 解释 \b[0-9]+\

我想用“X”替换日志上的所有数字,但我想保留HTTP状态码作为信息

我一直在尝试不同的方法。他们都没有工作

str.replaceAll((?!5\d\d | 4\d\d)\d{3},“X”)//不起作用
//尝试发布到/shippings/X5X5X/select?调用者时出错。id=XX592:500内部\u服务器\u错误
我需要它是:

发件人:

致:


如果要选择的数字后面从不跟空格和大写字符a-Z,则可以使用负前瞻:

\b[0-9]+\b(?! [A-Z])
解释

  • \b[0-9]+\b
    在单词边界之间匹配1+个数字
  • (?!
    负前瞻,断言右边的不是
    • [A-Z]
      匹配空格和大写字符A-Z
  • 关闭前瞻
|

Error trying to POST to /shipments/XXXX/select?caller.id=XXXX: 500 INTERNAL_SERVER_ERROR
\b[0-9]+\b(?! [A-Z])