私の目標は、正規表現が一致するテキストファイルから行を1行ずつ出力することです。私のファイルregexprc.txtには、すべての種類のものが書かれていますが、そのファイルの名前と一致し、それぞれの行を一行ずつ出力する単純なプログラムを書いています。Python 3:テキストファイルの名前を一致させて行単位で出力する
ルールは次のとおりです。オプションのミドルネームがすべて1つの空白で区切られた姓と名を持つ行。最初の文字はすべて大文字で、アルファベットの文字列は名前として使用できます。ジョンスミス、ジョンリースミス、AB、ABC、Abc Def Zと一致するはずです。ジョンスミス、Z、Ab Cd EE、ABC D.と一致してはいけません。
残念ながら、 Pythonの3に新しいmはここで私はこれまで試したものです:
import re
file_read = open("regexprc.txt", "r")
#match names
ptr = '^([A-Z][a-z]*\s){1,2}([A-Z][a-z]*)?$'
for line in file_read:
a = re.search(ptr, line)
print(a)
このコードだけのように見えるいくつかのメッセージとともに
None
文の多くを印刷し
:もう一度、私はちょうどそれをしたい
<_sre.SRE_Match object; span=(0, 4), match='A B\n'>.
行ごとにregexprc.txt
の名前を印刷します。
返す内容を確認するには、re.searchのドキュメントを読むことを強くお勧めします。 *そこにはっきりと明記されています。どんな正解もそれらのドキュメントの再ハッシュにすぎないので、これを尋ねる理由はありません。 –
'a = re.search(ptr、line)'を使用して ':' // 'print(a.group())'を使用します –
あなたの正規表現はあなたの基準よりも少し制限があります。あなたの正規表現は文字列 'Liam MacDonald'を受け入れるべきですか? –