java - 不知道如何使用替换

标签 java regex

我有一个如下所示的字符串

<a name="1.F"></a>

我试图仅提取值名称值。我用来完成此操作的正则表达式是。

搜索字符串

<a name=\"(\d)+(\.)(\w)+\"?>

替换字符串

$1$2$3

结果:这里我得到的结果是介于**之间的结果

搜索结果:

**<a name="1.F">**</a>

当前替换结果:

1.F</a>

预期替换结果:

1.F

请告诉我,我们怎样才能得到预期的结果。

谢谢

最佳答案

鉴于您的示例,您为什么不寻求一个简单的解决方案?就像:你的值被双引号括起来 - 所以只需使用这些知识并捕获这两个“引号”之间的所有内容。

import java.util.regex.*;

public class RegexTest {

  public static void main(String args[]) {
    String s = "<a name=\"1.F\"></a>";
    Pattern p = Pattern.compile("<a name=\\\"(.*)\\\"");
    Matcher m = p.matcher(s);
    if (m.find()) {
      System.out.println(m.group(1));
    }
  }
}   

打印:

1.F

你看,你甚至不需要正则表达式,你可以使用 String.indexOf()以快速获取该引号的位置。

如果另一方面,您的示例只是简化了,而您的实际输入非常复杂(例如:真正的 HTML 或 XML)...那么首先就忘记使用正则表达式(请参阅 here )为什么会这样)。

关于java - 不知道如何使用替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40760278/

相关文章:

ios - 正则表达式 - 匹配替换时区分大小写

python - 解析不同的日期格式: Regex

java - 如何在querydsl查询中添加括号?

java - 以下两种创建可执行 JAR 的方法有什么区别?

java - 我可以在项目的资源文件夹中看到图像,但仍然收到无效网址错误

drawing - 用于创建和动态修改业务图的 Java 库

regex - 在 vim 搜索和替换中匹配右括号

regex - Notepad++正则表达式加号

c# - 匹配未由 & 和 ; 包围的文本

java.lang.IllegalStateException : Neither BindingResult nor plain target object for bean name 'user' available as request attribute 错误