2016-04-14 7 views
1

私のソースファイルにpythonを使ってパターンを見つけようとしています。ソースコード内の
::私は例のソースコード内のLocalizedString()呼び出し、すべてのパラメータを取得したいPython:ファイル内に正規表現のある部分文字列を見つけよう

import os 
import re 

data=[] 
pattern = re.compile('LocalizedString(.*)') 

for dirname, dirnames, filenames in os.walk('.'): 
    for filename in filenames: 
     if '.m' in filename: 
      with open(os.path.join(dirname, filename),'r') as f: 
       for line in f: 
        matchObj = pattern.findall(line) 
        if matchObj: 
         for match in matchObj: 
          print "match : ", match 

    if '.git' in dirnames: 
     dirnames.remove('.git') 

    if '.svn' in dirnames: 
     dirnames.remove('.svn') 

:これは私がコードするものである私は@"Delete my Account"を取得したい

[_deleteButton setTitle:LocalizedString(@"Delete my Account") forState:UIControlStateNormal]; 

を、しかし、私はこれを持っています:

match : (@"Delete my Account") forState:UIControlStateNormal]; 
+0

')'がパラメータになる可能性があるインスタンスがありますか? –

+0

さて、iOSコードの解析は、正規表現にはあまり適していないかもしれません。特定の内容についてのみ –

答えて

1

問題は、ブラケットを使ってパターンにグループを作成していることです。しかし、文の開始と終了を指定する必要があります。使用すると、そのためのブラケットをエスケープ:

LocalizedString\((.*)\) 

regex101でそれをチェックしてください。

+1

'LocalizedString()'の後にもう一組の括弧があるとどうなりますか? –

+0

@WiktorStribiżew '。*'は次のステートメントの最後のオカレンスにすべてマッチするので、問題ではありません。次に例を示します:https://regex101.com/r/bH4nL2/3 – cansik

+1

Wiktorのユースケースは、次のようなものです: '[_deleteButton setTitle:LocalizedString(@" My Accountを削除 ")forState:UIControlStateNormal](); ' – Adib

関連する問題