Regex 用于替换数字大写旁边的字母的正则表达式

Regex 用于替换数字大写旁边的字母的正则表达式,regex,notepad++,Regex,Notepad++,我将这个正则表达式(\w+替换为\u$0 这使得首字母大写,例如:james1到james1 但我需要一个正则表达式,当每个单词以数字开头时,它会使每个单词的首字母大写 12james 1azz4ds 1995brandon 666metal 到 如何解决此问题?您可以匹配单词边界\b,匹配1+位\d+,然后忘记使用\K匹配的内容。然后匹配一个小写字母a-z: \b\d+\K[a-z] 替换为: \u$0 见 如果数字前不能有非空白,您也可以使用以下选项,而不是使用\b: (?&l

我将这个正则表达式
(\w+
替换为
\u$0

这使得首字母大写,例如:
james1
james1

但我需要一个正则表达式,当每个单词以数字开头时,它会使每个单词的首字母大写

12james

1azz4ds

1995brandon


666metal


如何解决此问题?

您可以匹配单词边界
\b
,匹配1+位
\d+
,然后忘记使用
\K
匹配的内容。然后匹配一个小写字母a-z:

\b\d+\K[a-z]
替换为:

\u$0

如果数字前不能有非空白,您也可以使用以下选项,而不是使用
\b

(?<!\S)\d+\K[a-z]
(?

请参阅此处的另一个

,我们还可以收集数字,然后收集字母,可能是大写或小写,并替换为:

[0-9]+([A-Za-z])

我们将添加一个开始字符,以仅捕获我们希望替换的字母:

^[0-9]+([A-Za-z])
或:

对于这个表达式,我们的替换类似于:

$1\u$2

正则表达式 如果不需要此表达式,可以在中对其进行修改或更改

正则表达式电路 可视化正则表达式:


您当前的正则表达式将大写任何单词,无论其是否以数字结尾。不清楚您是否意识到了这一点。对于您的主要问题,您可以将
(\d+)(正则表达式描述的单词不是以数字开头的)
更改为
$0\u$1
单词是否包含字母和数字以外的字符?
^([0-9]+)([A-Za-z])
$1\u$2