前提
プログラミング言語を触り始めのため知識が非常に浅く拙い文章になっていると思います。
data0118.dat に格納されている文字列のうち、特殊文字(アルファベット文字でも数字でもな
い文字)だけから構成される文字列はいくつあるか。
実現したいこと
- 特殊文字(アルファベット文字でもなく数字でもない文字)だけからなる文字列を抽出したい
発生している問題・エラーメッセージ
Pythonに含まれている「正規表現」を用いても特殊文字列だけの文字列を抽出できないです やりたい流れ comma = ['ZM4=mD!' , 'ULd21e' , '>&%@' , 'a913I@z' , .......] alpha = [a for a in comma if re.sub('r[a-zA-Z0-9]+',"",a)] print(alpha) 実行結果:['>& %@' , ......] (特殊文字だけを抽出出来ている) 実際 comma = ['ZM4=mD!' , 'ULd21e' , '>&%@' , 'a913I@z' , .......] alpha = [a for a in comma if re.sub('r[a-zA-Z0-9]+',"",a)] print(alpha) 実行結果:['ZM4=mD!' , '>& %@' , 'a913I@z'......] (特殊文字を「含む」文字列の抽出になっている)
該当のソースコード
python
1import re 2 3with open('data0118.dat','r') as f: 4 lines = f.read() 5 comma = lines.split() 6 7#特殊文字列だけで構成されている文字列を取得 8 alpha = [a for a in comma if re.sub('r[a-zA-Z0-9]+',"",a)] 9 print(alpha) 10 print(len(alpha)) 11 12 13### 試したこと 148行目にある内包表記の条件でisalpha()やisnumeric()を使ってみましたが、特殊文字を含む文字列を抽出されてしまいました。 15正規表現では「research」や「findall」等を調べて使ってみましたが、同じく特殊文字を含む文字列が抽出されてしまいました。 16 17 18### 補足情報(FW/ツールのバージョンなど) 19Vimを使っています。 20Python 3.9.7
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/01/17 13:19