json注釈の処理python正規表現

3144 ワード

最近文字列の时よく正規表現を使う必要があります.正規表現を学ぶ必要があります.結局、文字列を強く処理する能力があります.私はまず簡単なjsonの注釈を処理しました.コピーしたコードを貼り付けているので、いつも注釈があります.これは使えません.一つ一つ削除するのはあまりにもでたらめです.私はこのようにしたくありません.pythonで処理すればいいです.
json文字列を処理する前のコード
  {
         "Result":true,  //          
         /* I am shuai  */
         "Detail":
         {
               "Title":"     2014          (  ) ",  //  
               "Publisher":"   ",  //   
               "Date":"2014-6-25",  //    
               "Passage":"<p><font>    N……"  //  
               "yuan":"http://de/maxiaya"    //wewewwewew      
         }
    }

pythonはjson文字列のコードを処理し、
今すぐその特殊な状況を処理することができる.
  
#coding:utf-8

import re

def dealAnotation():

     fp1 = open('jsonAnnotation.txt','r')
     fp2 = open('dealjsonAnnotation.txt','w+')
     for line in fp1.readlines():
           string  = re.sub('([^:]//.*"?$)|(/\*(.*?)\*/)','',line)
           fp2.write(string)

     fp1.close()
     fp2.close()
      


if __name__ == '__main__':
     
     dealAnotation()
     
     

処理後のjsonのコードは、そのまま操作できます.
  {
         "Result":true, 
         
         "Detail":
         {
               "Title":"     2014          (  ) ", 
               "Publisher":"   ", 
               "Date":"2014-6-25", 
               "Passage":"<p><font>    N……" 
               "yuan":"http://de/maxiaya"   
         }
    }

便利じゃないかな
 
python正規表現のコードを少しください.練習します.
#coding:utf-8

import re

strA = 'yuan520'
print re.search('\d+',strA).group()

strB = 'abatksjdabut'
print re.search('b[aeiu]t',strB).group()

strC = 'I love you'
print re.match('I|love|bit',strC).group()

strD = '[email protected]'
strE = '[email protected]'
print re.match('\w+@(\w+\.)?\w+\.com',strD).group()
print re.match('\w+@(\w+\.)?\w+\.com',strE).group()

strF = 'the end.'
m = re.search('^the',strF)
if m is not None:
    print m.group()

m = re.search(r'\bthe','bite the dog')
if m is not None:
    print m.group()

data = 'The Feb 15 17:46:04 2007::[email protected]::11171590364-6-8'
m = re.match('.*(\d-\d-\d)',data)
print m.group()
print m.group(1)
print m.groups()



data = 'The Feb 15 17:46:04 2007::[email protected]::11171590364-6-8'
m = re.search('\d+-\d-\d',data)
print m.group()


出力の結果
520
bat
I
[email protected]
[email protected]
the
the
The Feb 15 17:46:04 2007::[email protected]::11171590364-6-8
4-6-8
('4-6-8',)
11171590364-6-8