gpt4 book ai didi

java - 通过排除 Java 中的某些字符串来替换字符串

转载 作者:搜寻专家 更新时间:2023-11-01 03:14:07 24 4
gpt4 key购买 nike

如何在 Java 中替换以下字符串:

Sports videos (From 2002 To 2003) here.

Sports videos 2002 2003 here.

我有使用代码,但它删除了整个字符串,即
我得到了这个输出:体育视频在这里。

String pattern= "\\((From)(?:\\s*\\d*\\s*)(To)(?:\\s*\\d*\\s*)\\)";

String testStr = "Sports videos (From 2002 To 2003) here.";

String testStrAfterRegex = testStr.replaceFirst(pattern, "");

这里缺少什么?

谢谢

具有日期格式的不同字符串

如果上面的字符串有日期格式器,如 (\\) 或任何其他字符/单词然后是数字,答案将无效

我用这个模式替换了原来的答案,它会起作用

String pattern= "\\((From)(.*)(To)(.*)\\)";

最佳答案

更改为

    String pattern= "\\((From)(\\s*\\d*\\s*)(To)(\\s*\\d*\\s*)\\)";
String testStr = "Sports videos (From 2002 To 2003) here.";
String testStrAfterRegex = testStr.replaceFirst(pattern, "$2 $4");

有两个问题:

首先

你把 (?:) 放在有年份的组里。这是用来不记得这些组的。

第二

您不使用组标识符,例如 $1、$2。我固定为第 2 组和第 4 组使用 $2 和 $4。


编辑

更清洁的解决方案:

    String pattern= "\\(From(\\s*\\d*\\s*)To(\\s*\\d*\\s*)\\)";
String testStr = "Sports videos (From 2002 To 2003) here.";
String testStrAfterRegex = testStr.replaceFirst(pattern, "$1$2");

关于java - 通过排除 Java 中的某些字符串来替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3597385/

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