Java replaceAll与正则表达式不替换完整结果 String myString=” 选项1.富吧 选项2.食物2酒吧2“ myString.replaceAll(“([A-Z])\\w+[0-9]。”,“$1”)
它的回归:Java replaceAll与正则表达式不替换完整结果 String myString=” 选项1.富吧 选项2.食物2酒吧2“ myString.replaceAll(“([A-Z])\\w+[0-9]。”,“$1”),java,android,regex,Java,Android,Regex,它的回归: String myString = " Opt. 1. FOO BAR Opt. 2. FOO2 BAR2" myString.replaceAll("([A-Z])\\w+. [0-9].", "<b>$1</b>") O FOO-BAR 及 O FOO2 BAR2 但是我想要 <b>O</b> FOO2 BAR2 opt1。福吧。。。 为什么它不返回替换为的全文? 如果我使用$2,我会得到一个java.lang.Arr
String myString = "
Opt. 1. FOO BAR
Opt. 2. FOO2 BAR2"
myString.replaceAll("([A-Z])\\w+. [0-9].", "<b>$1</b>")
O FOO-BAR
及
O FOO2 BAR2
但是我想要
<b>O</b> FOO2 BAR2
opt1。福吧。。。
为什么它不返回替换为的全文?
如果我使用$2,我会得到一个
java.lang.ArrayIndexOutOfBoundsException:length=4;index=4
您的第一个捕获组:([A-Z])
仅捕获字符串的第一个大写字符。如果您的字符串总是以Opt.
开头,然后是一个数字,请尝试以下模式():
您的第一个捕获组:
([A-Z])
只捕获字符串的第一个大写字符。如果您的字符串总是以Opt.
开头,然后是一个数字,请尝试以下模式():
$1
指的是第一组中的所有内容,所以请执行([A-Z]\\w+[0-9])
以包括不仅仅是第一个字母。如果我这样做不起作用,它甚至不会替换,仍然是文本正常=(哦,谢谢,我忘记将所有内容放在()!你可以添加为答案,这样我就可以标记它吗?只需在你的答案中添加一个,我需要将[A-Za-z]$1
指第一组中的所有内容,也可以添加([A-z]\\w+[0-9])
以包含不仅仅是第一个字母。如果我这样做,它甚至不会替换文本,仍然正常=(哦,谢谢你,我忘了把所有的东西都放在()之间!你能把答案加上吗,这样我就可以标记它了?只需在你的答案上加一个,我需要加[A-Za-z]
<b>O</b> FOO2 BAR2
<b>Opt 1.</b> FOO BAR ...
^(Opt\.\s+\d+\.)