これは私がほぼ一時間解決しようとしていた非常に明白な間違いのようです。 :(私は、数字をつかむしようとしてハイフンと+だけでサインインします。基本的にすべての\xa0
を削除していますregexを使用してリストをクリーンアップする方法は?
lst = ['\xa0\xa0+11-9188882266\xa0\xa0+01-9736475634 ','\xa0\xa0+11-9177772266\xa0\xa0+01-9736475234']
。
私はRegex
はそれについて移動する正しい方法だろうと思った。それを試してみましたが、失敗しました:
mRegex = (['+0-9-'])
lst = re.match(mRegex,lst)
Traceback (most recent call last): File "", line 1, in File "C:\Python34\lib\re.py", line 160, in match return _compile(pattern, flags).match(string) File "C:\Python34\lib\re.py", line 282, in _compile p, loc = _cache[type(pattern), pattern, flags] TypeError: unhashable type: 'list'
私はregex
とさらにいくつかの試みが、その後replace
に切り替え、それを与えた:
h.replace(r"\xa0","")
それはlst
に何もしません。正確に同じままです。
私がlen(lst[0])
を行うと、私は33
という非常に奇妙です。
で:
for i in lst[0]:
print(i)
出力が\xa0
は表示されません。
ここでは完全に混乱しています。
ありがとう:あなたは、おそらく正規表現ソリューションは以下のようになり
mRegex = '([0-9\-+])'
を意味しました。このソリューションは完全に機能します。しかし、その間、私は 'h = lst [0]' 'h.split()'を試みました。何らかの理由で今では番号を2つの別々のリスト項目として取得しています。まさに私が望んでいたものですが、それが可能であれば素晴らしいことでしょう。 – Sid
これは、 '\ xa0'がWindowsコンソールで使用されるある種の空白(0x20 + 0x80 = 0xa0)であるためです。 'split'はそれを検出し、空白にしたがって番号を分割します。 –
ありがとうございます。いくつかのことはもっと学ぶべきです。 – Sid