检查单词是否仅由给定字符组成的正则表达式是什么?
What is the regular expression for checking if the word consists only of the given characters?
我需要 python 2.7 的正则表达式来检查给定的单词是否只包含字母 'a'、'b'、'r'、'e', 'd'.请帮忙!
我尝试了以下代码:
text = raw_input ('Enter Text:')
result = re.match(r'[abred]+', text)
if result:
print ('Match')
else :
print ("Doesn't Match")
但是,例如通过输入 "aaaq" 它会将其视为匹配文本。
你不需要正则表达式你可以使用str.translate
:
In [4]: s = "bearded"
In [5]: not s.translate(None,"bread")
Out[5]: True
In [6]: s = "bored"
In [7]: not s.translate(None,"bread")
Out[8]: False
您的正则表达式 re.match(r'[abred]+', text)
将不起作用,因为它匹配字符串中出现的任何字母,这并不意味着您只有这些字母。
您可以 re.sub 字母并查看字符串是否为空:
if not re.sub(r'[abred]',"", text)
或者使用忽略这些字母的搜索,这样如果有任何字符栏,您将得到匹配项:
if not re.search("[^bread]",text):
为了修改您的正则表达式,您需要使用 ^
和 $
字符。 ^
匹配字符串的开头,$
匹配字符串的结尾。因此,如果您将正则表达式修改为 ^[abred]+$
,它将匹配仅包含字母 a
、b
、r
、e
和 d
。与当前的正则表达式 ([abred]+
) 相反,它将匹配任何包含这些字母的字符串。
我需要 python 2.7 的正则表达式来检查给定的单词是否只包含字母 'a'、'b'、'r'、'e', 'd'.请帮忙!
我尝试了以下代码:
text = raw_input ('Enter Text:')
result = re.match(r'[abred]+', text)
if result:
print ('Match')
else :
print ("Doesn't Match")
但是,例如通过输入 "aaaq" 它会将其视为匹配文本。
你不需要正则表达式你可以使用str.translate
:
In [4]: s = "bearded"
In [5]: not s.translate(None,"bread")
Out[5]: True
In [6]: s = "bored"
In [7]: not s.translate(None,"bread")
Out[8]: False
您的正则表达式 re.match(r'[abred]+', text)
将不起作用,因为它匹配字符串中出现的任何字母,这并不意味着您只有这些字母。
您可以 re.sub 字母并查看字符串是否为空:
if not re.sub(r'[abred]',"", text)
或者使用忽略这些字母的搜索,这样如果有任何字符栏,您将得到匹配项:
if not re.search("[^bread]",text):
为了修改您的正则表达式,您需要使用 ^
和 $
字符。 ^
匹配字符串的开头,$
匹配字符串的结尾。因此,如果您将正则表达式修改为 ^[abred]+$
,它将匹配仅包含字母 a
、b
、r
、e
和 d
。与当前的正则表达式 ([abred]+
) 相反,它将匹配任何包含这些字母的字符串。