TSR*_*TSR 2 regex dart flutter
我的尝试出了点问题:
String camelToSentence(String text) {
var result = text.replaceAll(RegExp(r'/([A-Z])/g'), r" $1");
var finalResult = result[0].toUpperCase() + result.substring(1);
return finalResult;
}
void main(){
print(camelToSentence("camelToSentence"));
}
Run Code Online (Sandbox Code Playgroud)
它只是打印“CamelToSentence”而不是“Camel To Sentence”。
看起来问题就在这里r" $1";
,但我不知道为什么。
您可以使用
String camelToSentence(String text) {
return text.replaceAllMapped(RegExp(r'^([a-z])|[A-Z]'),
(Match m) => m[1] == null ? " ${m[0]}" : m[1].toUpperCase());
}
Run Code Online (Sandbox Code Playgroud)
这里,
^([a-z])|[A-Z]
- 将字符串开头的小写 ASCII 字母匹配并捕获到组 1 中,或者仅匹配字符串中任意位置的大写字母(Match m) => m[1] == null ? " ${m[0]}" : m[1].toUpperCase()
返回大写组 1 值(如果匹配)或空格 + 匹配值作为替换。 归档时间: |
|
查看次数: |
2410 次 |
最近记录: |