繁体   English   中英

如何搜索并用正则表达式替换并在Perl中保留空格?

[英]How do I search and replace with a regex and preserve blank spaces in Perl?

我正在使用此代码: $text =~ s/\\s(\\w)/\\u$1/g;

但这This is an example

成为这是一个ThisIsAnExample

代替This Is An Example

如何保留空格?

使用后向。

$text =~ s/(?<!\S)(\w)/\u$1/g;

或使用效率更高的\\K (Perl 5.10+)。

$text =~ s/(?:^|\s)\K(\w)/\u$1/g;

两种解决方案都将确保第一个单词也大写。 如果这不是问题,可以将第二种解决方案简化为以下内容:

$text =~ s/\s\K(\w)/\u$1/g;

匹配项包含空格,替换项不包含空格。

$text =~ s/(\s)(\w)/$1\u$2/g;

由于\\s包含不同类型的空格字符,因此,如果要将其保留在替换中,则需要捕获并将其放回去。

另一种选择是使用单词边界和完整的“单词”。

$text =~ s/\b(\w+)\b/\u$1/g;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM