LeetCode-10. 正規表現マッチング(Python-reパッケージ)
10.正規表現の一致
タイトルの説明
コミットコード
1つの文字列(
一致は、文字列の一部ではなく、文字列全体(
説明:
例1:
例2:
例3:
例4:
例5:
ワイルドカード照合
Python
この問題はPythonのreで包んだのはまるでカンニングのようだ......
reの4つのマッチング方法を簡単に説明します.
match
stringの先頭に一致し、Match objectを正常に返し、失敗したらNoneを返し、1つだけ一致します.
search
stringで検索を行い、Match objectを正常に返し、失敗したらNoneを返し、1つだけ一致します.
findall
stringで一致したすべてのグループ、すなわちカッコで囲まれた部分を検索します.リストオブジェクトを返します.各リストitemは、一致するすべてのグループからなるリストです.
finditer
stringで一致したすべての文字列を検索し、iteratorを返します.各itemはMatch objectです.
group
は、条件に一致するすべての文字列をグループ、すなわちgroupにパッケージします.
ここで、0と番号付けされたgroup、すなわちgroup(0)は、一致する文字列全体を表す.
他の番号はそれぞれ1,2,3,...であり,一致して返されたグループ内の各文字列を表す.
タイトルの説明
コミットコード
1つの文字列(
s
)と1つの文字パターン(p
)が与えられる.'.'
と'*'
をサポートする正規表現マッチングを実現する.'.' 。
'*' 。
一致は、文字列の一部ではなく、文字列全体(
s
)を上書きする必要があります.説明:
s
は空であり、a-z
からの小文字のみを含むことができる.p
は空であり、a-z
からの小文字のみを含み、.
および*
の文字のみを含むことができる.例1:
:
s = "aa"
p = "a"
: false
: "a" "aa" 。
例2:
:
s = "aa"
p = "a*"
: true
: '*' , 'a' 。 , 'a' , "aa"。
例3:
:
s = "ab"
p = ".*"
: true
: ".*" ('*') ('.')。
例4:
:
s = "aab"
p = "c*a*b"
: true
: 'c' , 'a' 。 "aab"。
例5:
:
s = "mississippi"
p = "mis*is*p*."
: false
ワイルドカード照合
Python
import re
class Solution(object):
def isMatch(self, s, p):
ans = (re.match(p, s))
if(ans == None):
return False;
if(ans.group(0) != s):
return False;
return True;
s = Solution()
print (s.isMatch("ab", ".*c"))
この問題はPythonのreで包んだのはまるでカンニングのようだ......
reの4つのマッチング方法を簡単に説明します.
match
stringの先頭に一致し、Match objectを正常に返し、失敗したらNoneを返し、1つだけ一致します.
search
stringで検索を行い、Match objectを正常に返し、失敗したらNoneを返し、1つだけ一致します.
findall
stringで一致したすべてのグループ、すなわちカッコで囲まれた部分を検索します.リストオブジェクトを返します.各リストitemは、一致するすべてのグループからなるリストです.
finditer
stringで一致したすべての文字列を検索し、iteratorを返します.各itemはMatch objectです.
group
は、条件に一致するすべての文字列をグループ、すなわちgroupにパッケージします.
ここで、0と番号付けされたgroup、すなわちgroup(0)は、一致する文字列全体を表す.
他の番号はそれぞれ1,2,3,...であり,一致して返されたグループ内の各文字列を表す.