用正则表达式替换所有不替换完整结果

时间:2015-10-24 12:34:36

标签: java android regex

String myString = "
Opt. 1. FOO BAR
Opt. 2. FOO2 BAR2"


myString.replaceAll("([A-Z])\\w+. [0-9].", "<b>$1</b>")

它回归:

<b>O</b> FOO BAR

<b>O</b> FOO2 BAR2

但我想要

<b>Opt 1.</b> FOO BAR ...

为什么它没有用 返回完整的替换文本? 如果我使用$ 2,我会获得java.lang.ArrayIndexOutOfBoundsException: length=4; index=4

1 个答案:

答案 0 :(得分:0)

您的第一个捕获组:([A-Z])仅捕获字符串的第一个大写字符。如果您的字符串始终以Opt.开头,那么请尝试使用此模式(stub):

^(Opt\.\s+\d+\.)