Я использую регулярное выражение для заглавной буквы после буквы. или ? или ! но я не могу использовать верхний регистр, есть ли что-то, чего я не вижу?Заглавие первой буквы после периода
val reply = line.replaceAll("""([\.!?])\s+([a-z])""","""$1"""+" "+"""$2""".toUpperCase)
.toUpperCase
не влияет, так что я попытался это:
val pattern = """(?:(.+)?([\.!?])\s+([a-z])(.+)?)+""".r
val reply = line match {
case pattern(a,b,c,d) => a+b+" "+c.toUpperCase+d
case _ => line
}
Это не соответствует все вхождений. и он заглаживает буква только после первого периода.
Первый код не работает, так как '«$ 2»' после того, как верхний регистр является '«$ 2»' (вы изменяете регулярное выражение, а не само слово). –
Хорошо, но как мне это сделать? –
У вас есть пример строки, которая не работает? – thoredge