文字列の検索


Pythonには強力な正規表現を利用した文字列検索が可能です。文字列検索はre.searchまたはre.matchメソッドを使います。これらは似ていますが、searchは文字列に含まれる任意の部分文字列を探します。一方、re.matchは文字列の先頭にある部分文字列を探します。ただし、正規表現を使えば先頭以外の任意の位置の部分文字列を検索できます。

re.search(pattan, string [, flag])

re.match(pattan, string [, flag])

これらの関数は、一致する文字列があるとMatchObjectを返し、文字列が見つからないとNoneを返します。

re.searchの使用例
 re.searchではC言語の#includeを含む行は"include"だけで検索できる。

#
# == 文字列の検索 (search) ==
#
import re
import sys

try :
	f = open(sys.argv[1])
	while 1:
		s = f.readline()
		if s == "":
			break
		#print s,
		if re.search("include", s) != None :
			print s,
	f.close
except:
	print sys.argv[1] + "を開けない。"

re.matchの使用例
 re.matchではC言語の#includeを含む行は^#includeというふうに正規表現を使わないと検索できない。

#
# == 文字列の検索 (match) ==
#
import re
import sys

try :
	f = open(sys.argv[1])
	while 1:
		s = f.readline()
		if s == "":
			break
		#print s,
		if re.match("^#include", s) != None :
			print s,
	f.close
except:
	print sys.argv[1] + "を開けない。"