当前位置: 首页 > 面试题库 >

具有反向引用的简单Java正则表达式不起作用

燕星鹏
2023-03-14
问题内容

我很难用正则表达式的后向引用替换字符串:什么也不会替换,而且我总是以我的输入结尾。
我的代码:

String input="A12.3 bla bla my input";
input = StringUtils.replacePattern(
            input, "^([A-Z]\\d{2}\\.\\d)",
            "$1");
System.out.println(input);

主要问题是我不能更改Java代码,而只能更改输入,正则表达式和组引用。

您对符合我需求的任何其他正则表达式模式有什么建议吗?

StringUtils来自Apache Commons Lang


问题答案:

您将自己替换相同的匹配模式。可能您的意思是:

String input="A12.3 bla bla my input";
input = StringUtils.replacePattern(
            input, "^([A-Z]\\d{2}\\.\\d).*$", "$1");
//                                      ^^^
System.out.println(input);

.*$ 将匹配输入直到结束。



 类似资料:
  • 问题内容: 我必须先匹配一个数字,然后再匹配14次。然后,我来到了regexstor.net/tester中的以下正则表达式: 编辑 当我将其粘贴到代码中时,包括正确的反斜杠: 我已经用来替换了反向引用,该反向引用用于替换Java中的匹配项。 然后我意识到这是行不通的。在Java中,当需要在REGEX中向后引用匹配项时,必须使用,但是要替换它时,运算符为。 我的问题是:为什么? 问题答案: 在Ja

  • 本文向大家介绍Java正则表达式中的反向引用,包括了Java正则表达式中的反向引用的使用技巧和注意事项,需要的朋友参考一下 捕获组是一种将多个字符视为一个单元的方法。通过将要分组的字符放在一组括号内来创建它们。例如,正则表达式(狗)创建一个包含字母“ d”,“ o”和“ g”的单个组。 捕获组通过从左到右计数其开括号来编号。例如,在表达式((A)(B(C)))中,有四个这样的组- 示例 反向引用允

  • 问题内容: 代码: 错误: 我在这里做错了什么? 问题答案: 你需要调用的,然后才能调用和相关的功能,大约匹配的文本查询或操纵它(,,等)。 因此,在您的情况下: 这将找到第 一个 匹配项(如果有),并提取由正则表达式匹配的第一个捕获组。如果要在输入字符串中查找所有匹配项,请更改为循环。

  • 本文向大家介绍java正则表达式的简单运用,包括了java正则表达式的简单运用的使用技巧和注意事项,需要的朋友参考一下 本文为大家分享了如何运用java正则表达式的方法,供大家参考,具体内容如下 1.是否匹配给定的模型 代码如下: 运行结果如下: 2.替换 代码如下: 运行结果如下: 3.去重 代码如下: 运行结果如下: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程

  • 问题内容: 我有一个正则表达式: 这应该与该字符串匹配并返回三个捕获(根据Rubular) 这是我的代码: 当有三个时,此打印输出1(组),所以我只能这样做,只会返回32。 问题答案: 调用查找匹配的 下一个 实例,如果没有更多实例,则返回false。尝试调用它三次,看看是否有所有预期的组。 为了澄清,正在尝试 在正则表达式中 找到第一个组 表达式 。您的正则表达式中只有一个这样的组表达式,因此永

  • 本文向大家介绍正则表达式捕获Java中的组和反向引用,包括了正则表达式捕获Java中的组和反向引用的使用技巧和注意事项,需要的朋友参考一下 捕获组是一种将多个字符视为一个单元的方法。通过将要分组的字符放在一组括号内来创建它们。例如,正则表达式(狗)创建一个包含字母“ d”,“ o”和“ g”的单个组。 捕获组通过从左到右计数其开括号来编号。例如,在表达式((A)(B(C)))中,有四个这样的组-