文字列に文字a〜zの小文字の単語が出現するインデックスを見つける必要があります。ただし、文字列には単語内にアルファベット以外の文字が含まれていることがあります。Python Regex中間で非アルファベットの単語を検索する
たとえば、単語「dont」は、「do not do that」という語句のインデックス[0,5]にまたがります。
私は非アルファの文字にマッチする方法を周りに検索し、次の正規表現でこれを達成:
>>> import re
>>> pattern = re.compile("d[^a-z]*o[^a-z]*n[^a-z]*t[^a-z]*")
>>> test = "don't"
>>> pattern.search(test).start()
0
>>> pattern.search(test).end()
5
>>> test = "d'o&&&&&n't"
>>> pattern.search(test).start()
0
>>> pattern.search(test).end()
11
>>>
は、この正規表現を表現するために、より簡潔な方法はありますか?または、検索したいすべての単語の中に[^ a-z] *を挿入するコードを記述する必要がありますか?
申し訳ありませんがこの質問が既に存在する場合 - 私は正確にこの質問をどのようにフレーズするか分かりません。助けてくれてありがとう。
本当にここで何を達成しようとしていますか?これはnltkの問題ではありませんか? – Jan