如何检测字符串的大小写(小写、大写、CamelCase[,可能是WhATevERcAse])以应用于另一个字符串?
我想和塞德一条线或者别的什么的。
这是用于拼写检查,提出更正。
假设我得到了类似string_to_fix的东西:更正:
BEHAVIOUR:behavior=>获取BEHAVIOUR:BEHAVIOR
Behaviour:behavior=>获取Behaviour:Behavior
behaviour:behavior=>保持behaviour:behavior
需要处理的额外案件:
MySpecalCase:myspecialcase=>MySpecalCase:MySpecialCase(因此字符是参考点,而不是单词中的位置)

最佳答案

使用GNU sed:

sed -r 's/([A-Z]+):(.*)/\1:\U\2/;s/([A-Z][a-z]+):([a-z])/\1:\U\2\L/' file

说明:
s/([A-Z]+):(.*)/\1:\U\2/:搜索小于或等于:的大写字母,并使用反引用和大写修饰符\U,将:之后的字母更改为大写
s/([A-Z][a-z]+):([a-z])/\1:\U\2\L/:搜索以大写字母开头的单词,如果找到,则将:之后的第一个字母替换为大写

关于regex - 检测字符串大小写并应用于另一个,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41217920/

10-13 07:14