我正在尝试匹配用户密码组合,我尝试了以下内容。
combination='User'+' '+'Password'
import re
print(combination)
with open("file.txt",'rb') as file:
if re.search('^{0}$'.format(re.escape(combination)), file.read(), flags=re.M):
print('yes')
else:
print "no"
我的file.txt内容:
User Password
Sam Somepass
Ron Ssss
当我运行此代码时,我收到消息"no"
。我无法弄明白为什么。
编辑:
Name
和Password.
我的目标是搜索从其他文件收到的确切字符串User Password
。
答案 0 :(得分:1)
import re
combination='User Password'
with open("file.txt",'rb') as file:
if re.search('.*{0}.*'.format(combination), file.read(), flags=re.M):
print 'yes'
else:
print 'no'
答案 1 :(得分:1)
你的代码很好。只需检查User Password
之前和之后没有空格。
否则,您可以将此正则表达式与\s*
一起使用,以匹配任何空格,制表符或换行符。
例如:
import re
user = 'Sam'
password = 'Somepass'
with open("test.txt",'r') as file:
if re.search('\s*{0}\s+{1}\s*'.format(user, password), file.read(), flags=re.M):
print 'yes'
else:
print 'no'
立即查看:here
答案 2 :(得分:0)
我刚刚运行了该代码,以下是它的问题。
假设您正在运行python 3,则需要使用括号" no"。
除此之外" b"用于打开文件的标志将其设置为二进制模式。在python 3中,我得到错误" TypeError:不能在类字节对象上使用字符串模式"我建议删除它,因为您正在操作文本文件。
以下代码在python 3.3.4中为我工作
combination='User'+' '+'Password'
import re
print(combination)
with open("file.txt",'r') as file:
if re.search('^{0}$'.format(re.escape(combination)), file.read(),flags=re.M):
print('yes')
else:
print("no")