次の条件で文字列を一致させたい:
- 任意の文字に一致し、その後に「.」が続き、その後に文字が続き、その後に行末が続きます。
たとえば、文字列「www.stackoverflow.com」の場合、正規表現は「stackoverflow.com」を返す必要があります。私は動作する次のコードを持っています:
my_string = '''
123.domain.com
123.456.domain.com
domain.com
'''
>>> for i in my_string.split():
... re.findall('[A-Za-z\.]*?([A-Za-z]+\.[a-z]+)$', i)
...
['domain.com']
['domain.com']
['domain.com']
>>>
上記のコード スニペットは完全に機能します。しかし、同じことを達成するためのよりエレガントな方法があるに違いないと確信しています。
文字列の先頭に向かって、文字列の末尾から正規表現検索/一致を開始することは可能ですか? そのタイプの正規表現をどのようにコーディングしますか? または、正規表現をまったく使用する必要がありますか?