[英]Capitalize First Letter of Every Word inside Bracket
我正在尝试为Tagscanner(Windows上的音乐标记器)编写一些有用的Regex,并在regex101.com上花了很多时间来实现我的想法。
在像法语这样的语言中,如果你把每个单词都弄清楚,那么让标题看起来很好是一件非常痛苦的事情。 我只想把圆括号中每个单词的第一个字母大写。 我会收到这样的字符串:
Edith Piaf - La vie en rose(louis armstrong 2015版)
我从这个基础开始:
/([a-z])([\w-']*)([\s\)\]\,;\d]*|$)/gi
that I replace by \U\1\E\2\3
([a-z]) I try to capture the letter I want in uppercase
([\w-']*) What I expect to be the rest of the word
([\s\)\]\,;\d]|$) Delimiters
这实际上会在标题中正确地进行资本化,然后出现问题......
我试图忽略一切,直到我遇到'('
\(\K or \({1} or with \(\A or \((*SKIP) etc...
积极的lookbehind(?<=()也不起作用,因为在我的第一场比赛之后它会看起来我是否'''再次。
还试图抓住整个事情并把*之后也不起作用。
我只是不知道该怎么做。 非常感谢您的帮助!
Perl从@WiktorStribiżew的正则表达式重命名:
rename -n 's/(?:\G(?!^)|\()[^()]*?\K\b(\p{Ll})(\w*)/\U$1\E$2/gmu' Edith*
当输出看起来很好时,删除-n
开关。
还有其他具有相同名称的工具可能会或可能不会这样做,所以要小心。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.