我正在使用Python中的正则表达式。我想匹配插入数据库的CSV文件中的几行,该数据库以下划线开头和结尾。
我在Python脚本中使用了正则表达式来执行相同操作,但它将结果打印为“none”。这是我的相同代码,请告诉我我犯了什么错误:
reg = re.compile(r'^_.*_$',re.I)
imatch = reg.match(unicode(row[4], "utf8"))
这里r'^_.*_$',re.I
是我的正则表达式,用于匹配以_开头和结尾的行。 unicode(row[4], "utf8")
指定插入数据库的CSV文件中的行。
任何帮助都将不胜感激。
答案 0 :(得分:1)
import re
lines = [line.strip() for line in open('file.csv')]
for x in lines:
match=re.search(r'^_.*_$',x)
if match: print x
我们必须去除每一行,否则每行以char'\ n'而不是'_'结尾,在这种情况下,regex将不匹配该字符串。
FILE.CSV
_abdlfla_
sldjlfds_
_adlfdls
_132jdlfjflds_
输出
_abdlfla_
_132jdlfjflds_
答案 1 :(得分:0)
您可以使用startswith和endswith函数而不是re。使用re的任何具体原因?
for l in open('test.csv'):
l=l.strip()
if l.startswith('_') and l.endswith('_'):
print(l)