我用这个正则表达式来话转换成的首字母大写,并确认各替代:正则表达式的话转换成首字母大写
:s/\%V\<\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]\)\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]*\)\>/\u\1\L\2/gc
然而,这也符合谁已经在首字母大写的单词。
有谁知道如何改变上面的正则表达式,以跳过已经在TitleCase中的单词?
我用这个正则表达式来话转换成的首字母大写,并确认各替代:正则表达式的话转换成首字母大写
:s/\%V\<\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]\)\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]*\)\>/\u\1\L\2/gc
然而,这也符合谁已经在首字母大写的单词。
有谁知道如何改变上面的正则表达式,以跳过已经在TitleCase中的单词?
要仅匹配非标题字,您希望匹配那些以大写字母开头(a)与小写字母或(b)与两个。下面将做(添加重音的字母和数字的味道):
\b([A-Z])([A-Z][A-Za-z]*)|\b([a-z])([a-zA-Z]+)
但有些话在小组\1
和\2
,其他匹配在\3
和\4
。我不使用vim,所以我不能说它是否会让你用这种模式来替代。 (例如,\u\1\3\L\2\4
;四个中只有两个将是非空的)
是的,我调整了一下Vim,它工作的\\ \ \ \ [[AZ] \ [AZ] \ <[az] \)\([a-zA-Z] \ + \> \)'但是..我不知道如何用正则表达式中的'OR'语句替换。有人可以帮助我吗? – Reman
Oeps。它不匹配'HEllO' – Reman
找到它。这是一个作品,其中一个作品是[a-zA-Z0-9aäâêèéëêìòöôœùüûçÀÄÂÆßÈÉÊÊÖÔÙÙÙÛ] * [a-z0-9ÀÆßÈÉËÊÌÖÔŒÙÜÛ] \ + [a-zA-Z0- 9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ] * \> \)\ | \ C \%V \(\ <[A-zàäâæèéëêìòöôœùüûç] \)\([A-ZA-Z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ] \ + \> \)/ \ U \ 1 \大号\ 2 \ u \ 3 \ L \ 4/gc' – Reman
:s/\%V\<\([a-z0-9àäâæèéëêìòöôœùüûç]\)\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]*\)\>/\u\1\L\2/gc
似乎要做的伎俩,在这里。
因为你已经明确地列入你的第一个字母捕获组在使用范围大写字符,你的模式是要匹配都foo
和Foo
。从该范围删除大写字符似乎解决您的直接问题。
第一个捕获组(第一个字母?)中的模式包括'A-Z'和大量重音首字母。如果你放下它们,你的搜索将只匹配以小写字母开头的单词,我想。 – romainl