としては、コメントで述べている:本当にここに正規表現の必要性。
lst=[
'ES_Low',
'NQ_High',
'NQ_Low',
'NQ_Close',
'NQ_Volume',
'GC_Open',
'GC_High',
'GC_Volume']
def cleanse(item):
if item.endswith('Low') \
or item.endswith('High') \
or item.startswith('NQ_'):
return True
desired = list(filter(cleanse, lst))
print(desired)
# ['ES_Low', 'NQ_High', 'NQ_Low', 'NQ_Close', 'NQ_Volume', 'GC_High']
さらにa demo on ideone.comを参照してください。もちろん
、同じことが同様に正規表現を用いて達成することができる。
import re
rx = re.compile(r'(?:^NQ_)|(?:(?:Low|High)$)')
desired = [item for item in lst if rx.search(item)]
print(desired)
# ['ES_Low', 'NQ_High', 'NQ_Low', 'NQ_Close', 'NQ_Volume', 'GC_High']
出典
2016-08-11 08:57:26
Jan
スタートを「[正規表現HOWTO](https://docs.python.org/3/howto/regexを読み込むことで。 html) ";代替メタキャラクタ( '|')は、「[More Metacharacters](https://docs.python.org/3/howto/regex.html#more-メタキャラクタ)」の最初のセクションです。必要に応じて、['re'モジュールのドキュメント](https://docs.python.org/3/library/re.html#module-re)を参照してください。または、開始と終了について心配する必要がある場合は、文字列['startswith'](https://docs.python.org/3/library/stdtypes.html#str.startswith)と[' endswith' ](https://docs.python.org/3/library/stdtypes.html#str.endswith)メソッド。 –
正規表現は必要ありません。 'startswith()'と 'endswith()'でリストの理解を使用してください。 – Jan
@ヤン:トゥーシェ...編集中に私を見つけました。 –