如何使用正则表达式将单词的第一个字符转换为大写?

时间:2013-09-29 00:51:47

标签: regex replace

我正在寻找一种方法来将句子中每个单词的第一个字符从小写改为大写。我已经阅读了following answer,但它不起作用。

我尝试使用\U将第一个字母替换为大写字母。但它返回\ U作为替代,而不是第一个字母。有人可以看看http://regexr.com?36h59

提前谢谢!

4 个答案:

答案 0 :(得分:1)

如果可以进行文本转换取决于regexp实现。大多数标准实现都基于Perl正则表达式而不支持。

然而,许多文本编辑器确实提供了某种转换方式,因为它们没有处理正则表达式匹配的任何其他功能。例如,链接问题中的答案是指一个名为“TextPad”的编辑器。这些转换通常是非标准的,并且根据您使用的工具而有很大差异。但是,在使用编程语言时,您并不需要在正则表达式语法中内置这些功能,因为您可以轻松地存储匹配并自行进行进一步处理。许多语言还允许您提供一个函数,然后调用该函数来单独处理每个替换。

如果您告诉我们您使用的语言,我们可能会为您提供进一步的帮助。

一些例子

JavaScript的:

> text = 'anleitungen gesundes wohnen';
> text.replace(/(\w+)/g, function(x) { return x[0].toUpperCase() + x.substring(1) });
'Anleitungen Gesundes Wohnen'

的Python:

>>> import re
>>> text = 'anleitungen gesundes wohnen'
>>> re.sub('(\w+)', lambda x: x.group(0).capitalize(), text)
'Anleitungen Gesundes Wohnen'

答案 1 :(得分:0)

的JavaScript

 str.replace(/' '([a-z])+/, foo);

function foo(x){
    return x.toUpperCase();
}

答案 2 :(得分:0)

$ echo 'xyzzy plugh dwarf' | sed 's/\(\<.\)\.*/\u\1/g' 
Xyzzy Plugh Dwarf

答案 3 :(得分:-1)

如果您使用PHP编码,请查看此处的手册: http://php.net/manual/en/function.ucwords.php