我将此正则表达式(\w+)
替换为\u$0
这使首字母大写为例如:james1
至James1
。
但是我需要一个正则表达式来使每个单词的首字母大写(例如以数字开头)
12james
1azz4ds
1995brandon
666metal
到
12James
1Azz4ds
1995Brandon
666Metal
我该如何解决这个问题?
答案 0 :(得分:1)
您可以匹配单词边界\b
,匹配1个以上的数字\d+
,然后忘记使用\K
匹配的内容。然后匹配一个小写的a-z:
\b\d+\K[a-z]
替换为:
\u$0
如果数字前不能有非空格,那么您也可以使用:
\b
查看其他Regex demo
答案 1 :(得分:1)
在这里,我们还可以收集数字,然后将字母(大写或小写)替换:
[0-9]+([A-Za-z])
我们将添加一个开始字符,以仅捕获我们希望替换的那些字母:
^[0-9]+([A-Za-z])
或:
^([0-9]+)([A-Za-z])
对于这个表达式,我们的替换看起来类似于:
$1\u$2
如果不需要此表达式,可以在regex101.com中对其进行修改或更改。
jex.im可视化正则表达式: