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
答案 0 :(得分:0)
您的第一个捕获组:([A-Z])
仅捕获字符串的第一个大写字符。如果您的字符串始终以Opt.
开头,那么请尝试使用此模式(stub):
^(Opt\.\s+\d+\.)