テキストのロゴなどでイニシャル表記のなどする時に大文字だけを抜き出すことがあると思います。そんな場合に使える方法です。
正規表現
英語では”Regular Expression”とか”RegExp()”とかいうみたいです。まだ詳しくなくてすいませんー理解したらここの説明もやります。。。ざっくり間違いを恐れずにいうと
- 文字列の検索や置き換えとか?
という感じです。今回はその中で文字の中で大文字を検知して表示する方法をまとめてみました。ややこしやー
対象のテキスト情報を取得
n = thisComp.layer("PremierePro").text.sourceText;
まずは対象のテキストレイヤーの情報を変数に入れました。テキスト情報なので
- .text.sourceText
まで記述してます。
アルファベットの大文字だけを抜き出す
n = thisComp.layer("PremierePro").text.sourceText;
nn = n.match(/[A-Z]/g);
2行目から本題です。まずは正規表現のmatch(メソッド)
matchはカッコ内で指示した条件に合うものを抜き出してきます。今回の場合は大文字だけ抜き出したいので
nn = n.match(/[A-Z]/g);
正規表現はスラッシュ( / )で囲うのがルールです。今回は[A-Z]の大文字があれば抜き出してね。となります。ただそのままだと1文字しか処理してくれないので全部の大文字を抜き出してくれるようにgをつけています。
- g = グローバルサーチ(全体を対象にして抜き出す)
と覚えておいてくださいませ。
でもなんかカンマついちゃう
コレまだよくわかってないんですけど、カンマがついちゃいます。句切のカンマなのかな?とは思うんですがコレじゃまなのでreplaceで消します
//variable
n = thisComp.layer("PremierePro").text.sourceText;
nn = n.match(/[A-Z]/g);
//Math
String(nn).replace(",","")
コレで完成
コレで文字を変えると大文字のところだけを取ってくれるようになります。感動。
是非コレみなさんも使ってみてください。
エクスプレッションを使って快適なAe生活を^^