【发布时间】:2019-08-25 13:07:09
【问题描述】:
我正在尝试为 Tagsscanner(Windows 上的音乐标记器)编写一些有用的正则表达式,并在 regex101.com 上花了很多时间来实现我的想法。
在某些语言(例如法语)中,如果您将每个单词都大写,让标题看起来不错是一件非常痛苦的事情。我只想将圆括号中每个单词的第一个字母大写。我会收到这样的字符串:
Edith Piaf - La vie en rose(路易斯·阿姆斯特朗 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...
Positive lookbehind (?
还尝试捕获整个内容并将 * 放在后面也不起作用。
我只是不知道该怎么做。非常感谢您的帮助!
【问题讨论】:
-
您好@WiktorStribiżew 感谢您的快速回复。它在 regex101.com 上就像一个魅力。但是我的软件不喜欢它......结果给我:La vie en rose (\Ul\Eouis \Ua\Ermstrong 2015 \Uv\Eersion) 我会研究你的代码!这对我的理解有很大的提高。
-
@WiktorStribiżew 该软件不支持 \U\E 是时候换一个可以的了。还是非常感谢!!!
-
当您决定选择什么环境时,请更新问题并通过评论告知。
标签: regex