0

我正在使用 Python 中的正则表达式。我想匹配插入数据库的 CSV 文件中的几行,该数据库以下划线开头和结尾。

我在我的 Python 脚本中使用了正则表达式来执行相同的操作,但它会将结果打印为“无”。这是我的代码,请告诉我我犯了什么错误:

reg = re.compile(r'^_.*_$',re.I)
imatch = reg.match(unicode(row[4], "utf8"))

r'^_.*_$',re.I是我的正则表达式,用于匹配以 _ 开头和结尾的行。unicode(row[4], "utf8")指定插入数据库的 CSV 文件中的行。

任何帮助,将不胜感激。

4

2 回答 2

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' 而不是 '_' 结尾,在这种情况下,正则表达式将与字符串不匹配。

文件.csv

_abdlfla_
sldjlfds_
_adlfdls
_132jdlfjflds_

输出

_abdlfla_
_132jdlfjflds_
于 2013-02-17T16:29:24.040 回答
0

您可以使用startwith 和endwith 函数而不是re。使用 re 的任何具体原因?

for l in open('test.csv'):
    l=l.strip()
    if l.startswith('_') and l.endswith('_'):
        print(l)
于 2013-02-17T16:35:57.030 回答