Python正则表达式精确模式

时间:2014-03-11 12:52:14

标签: python regex python-2.7

我是使用Python的正则表达式的初学者,我想要做的是包括一个必须在搜索正则表达式时完全找到的ppattern。例如\w[$X|@]因此如果找不到$X,则匹配将返回false而不是搜索$X,因此它的行为如下:

google@google.com ---->匹配

google $ Xgoogle.com ---->匹配

google $ google.com ----&gt; <匹配

googleXgoogle.com ----&gt; <匹配

2 个答案:

答案 0 :(得分:1)

[$X ...]将匹配$ X

您需要\$X

如果你的“确切”意味着完全匹配字符串,那么你需要^\$X$,也就是说,只匹配字符串"$X"

哎呀你编辑了你的问题...那么这应该适合你:

In [3]: import re
In [4]: l=['g@g.com','g$Xg.com','g$g.com','gXg.com']         

In [5]: for s in l:                                 
    print s + " matched? " + str(True if len(re.split('\$X',s))>1 else len(re.split(r'[$X]',s))==1)
   ....:     
g@g.com matched? True
g$Xg.com matched? True
g$g.com matched? False
gXg.com matched? False

答案 1 :(得分:1)

编辑:问题已通过示例更新,因此我在答案中添加了一个。

如果您想在文本中搜索$X,以下是您可能会做的快速示例:

import re

pattern = r'\$X|@'
m = re.search(pattern, "google$Xgoogle.com")

然后,如果你在一个功能中,你可以这样做:

if m:
    return True
else:
    return False