0

この正規表現を使用して TitleCase の単語を変換し、各置換を確認します。

:s/\%V\<\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]\)\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]*\)\>/\u\1\L\2/gc 

ただし、これは既に Titlecase にある単語にも一致します。

既に TitleCase にある単語を飛び越えるために上記の正規表現を変更する方法を知っている人はいますか?

4

2 に答える 2

2
:s/\%V\<\([a-z0-9àäâæèéëêìòöôœùüûç]\)\([A-Za-z0-9àäâæèéëêìòöôœùüûçÀÄÂÆßÈÉËÊÌÖÔŒÙÜÛ]*\)\>/\u\1\L\2/gc

ここでトリックを行うようです。

最初の文字キャプチャ グループで使用する範囲に大文字を明示的に含めているため、パターンは と の両方 foo Foo一致します。その範囲から大文字を削除すると、差し迫った問題が解決するようです。

于 2012-12-21T13:54:41.053 に答える
1

タイトル以外の単語のみを照合するには、(a) 小文字で始まる単語、または (b) 2 つの大文字で始まる単語を照合します。以下はそれを行います(味にアクセント付きの文字と数字を追加します):

\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; 4 つのうち空でないのは 2 つだけ)

于 2012-12-22T02:59:01.357 に答える