2016-12-01 3 views
2

私のXcodeプロジェクトでアンラップされたすべての変数を探したい。たとえばに似て何も:アンラップされた変数を強制的に見つけるための正規表現パターン

variableName!.property 

または

variableName!, 

または

variableName! : otherVariable 

または

variableName!) 

または力の任意の他の類似の出現は、変数をアンラップ。 Xcode検索で使用できる正規表現のパターンは何でしょうか?

+1

あなたのニーズを100%満たす正規表現パターンはないと思います。そのレベルの精度が必要な場合(つまり自動ツールを作成する場合)、[Clang Abstract Syntax Tree](http://clang.llvm.org/docs/IntroductionToTheClangAST.html)を調べる必要があります –

答えて

1

!の後にスペース、タブ、改行、またはピリオド、コンマ、コロン、または閉じ括弧が続く有効な変数名(文字で始まる英数字の文字列)のみを検索します。この検索で​​は、try!as!のインスタンスも除外されます。

([A-z]+[A-Za-z0-9]*(?<![(try)(as)])![.,:)\n\t\r ])

あなたは同様にそれらを見つけることに興味がある場合は、この次のパターンはtry!as!と一致します。これらのパターンの両方が、また力開封されたoptionalsある変数の型のために一致します注意すべきである

([A-z]+[A-Za-z0-9]*![.,:)\n\t\r ])

(力すべき共通の変数が@IBOutlet秒であることアンラップ)

書き込みのための本当に良いリソース正規表現をテストすることはregexr.com

+0

私はこれを使用したが、新しい行の文字を取り出した。みんな、ありがとう! – Tometoyou

0

あなたはばかプルーフない(つまり、スウィフト構文の完全な読み取りを必要とする)が、十分ではほとんどの場合探す>正規表現のツール

+0

これはまた、 'fileprivate var button:UIButton!'のように、アンラップされたとして宣言されている初期段階のプロパティを呼び出せません。 – Tometoyou

+0

これまでの4件にマッチしたいだけですか? – CZ54

+0

4つのケースに加えて、私が言及したものを含まない他の同様のもの(私が何かを忘れた場合)。 – Tometoyou

2

を使用して.+!(\.|,| :|\))を検索する必要がありますの

\w[\w\d]*! 

をもちろん、!を検索することもできます。負のテスト(!=)とブール値(!valid)の2つのみが使用されています。あなたは検索でいくつかの文字列リテラルを拾い上げるかもしれませんが、自動ツールを書いていない限り、それは重要ではありません。

+0

に大文字小文字を追加できます!不等式とテストブール値のためにも使用されます – geraldWilliam

+0

@geraldWilliamありがとうございます。更新私の答え –

関連する問題