Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java replaceAll与正则表达式不替换完整结果 String myString=” 选项1.富吧 选项2.食物2酒吧2“ myString.replaceAll(“([A-Z])\\w+[0-9]。”,“$1”)_Java_Android_Regex - Fatal编程技术网

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+\.)