C# 将字符串大写,但仅在某些标点符号之后
我试图找到一种有效的方法来获取输入字符串并将每个标点符号(. : ? !
)后的第一个字母大写,后面跟着一个空格。
输入:
“我吃了一些东西,但我没有: 相反,不。你怎么认为?我 不认为!对不起,我”
输出:
“我吃了东西。但我没有: 相反,不。你怎么认为?我 不认为!对不起.moi”
显而易见的是,将其拆分,然后将每个组的第一个字符大写,然后连接所有内容。但这非常丑陋。执行此操作的最佳方法是什么?(我在想 Regex.Replace
使用 MatchEvaluator
将第一个字母大写,但希望获得更多想法)
谢谢!
I'm trying to find an efficient way to take an input string and capitalize the first letter after every punctuation mark (. : ? !
) which is followed by a white space.
Input:
"I ate something. but I didn't:
instead, no. what do you think? i
think not! excuse me.moi"
Output:
"I ate something. But I didn't:
Instead, no. What do you think? I
think not! Excuse me.moi"
The obvious would be to split it and then capitalize the first char of every group, then concatenate everything. But it's uber ugly. What's the best way to do this? (I'm thinking Regex.Replace
using a MatchEvaluator
that capitalizes the first letter but would like to get more ideas)
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
快速简单:
用法:
Fast and easy:
Usage:
试试这个:
Try this:
我使用扩展方法。
然后我可以执行以下操作:
I use an extension method.
Then I can do the following:
使用 Regex / MatchEvaluator 路由,您可以匹配
整个匹配并将其大写。
Using the Regex / MatchEvaluator route, you could match on
and capitalize the entire match.
其中文本变量包含字符串
Where the text variable contains the string