猿问

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

我想用“X”替换日志上的所有数字,但我想保留 HTTP 状态代码以获取信息。

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

str.replaceAll("(?!5\d\d|4\d\d)\d{3}", "X") //Didn't worked
// Error trying to POST to /shipments/X5X5X/select?caller.id=XX592: 500 INTERNAL_SERVER_ERROR

我需要它是:

从:

Error trying to POST to /shipments/28056415973/select?caller.id=116089592: 500 INTERNAL_SERVER_ERROR

到:

Error trying to POST to /shipments/XXXX/select?caller.id=XXXX: 500 INTERNAL_SERVER_ERROR


慕斯709654
浏览 114回答 1
1回答

慕田峪4524236

如果您要选择的数字后面从来没有空格和大写字符 AZ,您可以使用负向前看:\b[0-9]+\b(?! [A-Z])解释\b[0-9]+\b匹配单词边界之间的 1+ 位数字(?!负向前看,断言右边的不是 [A-Z]匹配空格和大写字符 AZ)关闭前瞻正则表达式演示| Java演示
随时随地看视频慕课网APP

相关分类

Java
我要回答