2017-05-24 9 views
0
input_a = 'Hell(o) how a(re) you ? (.)' 
output_a = 'Hello how are you ? (.)' 

内部のシンボルを持っていたときに手紙を持ってではなく、ブラケットを取り外します。 私はre.subを試しましたが、すべての括弧が削除されています。助言がありますか?それはそこにアルファベットがそれであるが、その中にシンボルを持ってい ブラケットを取り外していないブラケットを取り外し

答えて

0
input_a = 'Hell(o) how a(re) you ? (.)' 
output_a = [] 
i = 0 
while i<len(input_a): 
    if input_a[i] !="(": 
     output_a.append(input_a[i]) 
     i=i+1 
     continue 
    else: 
     if input_a[i+1].isalpha(): 
      i=i+1 
      while input_a[i]!=")": 
       output_a.append(input_a[i]) 
       i =i+1 
      i = i+1 
     else: 
      while input_a[i]!=")": 
       output_a.append(input_a[i]) 
       i=i+1 
output_a = "".join(output_a) 
+0

ありがとうございます。 input_aが文字列ではなく文字列のリストであった場合はどうでしょうか?例えば:input_a = ['地獄(o)あなたはどうやって(re)? (。) '、'私はあなたに感謝します。 ']] – raven530

+0

その場合、そのコードを関数として定義します。 私は別の答えを書いています。コメントに書き込むのは難しい – frhyme

0

その場合(あなたがコメントしました)、以下のように解決できます。

input_as= ['Hell(o) how a(re) you ? (.)' , 'I a(m) fi(ne) thank you .(.)'] 
output_as =[] 
for input_a in input_as: 
    output_a = [] 
    i = 0 
    while i<len(input_a): 
     if input_a[i] !="(": 
      output_a.append(input_a[i]) 
      i=i+1 
      continue 
     else: 
      if input_a[i+1].isalpha(): 
       i=i+1 
       while input_a[i]!=")": 
        output_a.append(input_a[i]) 
        i =i+1 
       i = i+1 
      else: 
       while input_a[i]!=")": 
        output_a.append(input_a[i]) 
        i=i+1 
    output_a = "".join(output_a) 
    output_as.append(output_a) 
print(output_as) 
関連する問題