Python中用于匹配CSV文件中字符串的正则表达式
我正在用Python处理正则表达式。我想匹配插入数据库的CSV文件中的几行,该数据库以下划线开头和结尾 我在Python脚本中使用了正则表达式来实现同样的功能,但它将结果打印为“无”。这是我的代码,请告诉我我犯了什么错误:Python中用于匹配CSV文件中字符串的正则表达式,python,regex,Python,Regex,我正在用Python处理正则表达式。我想匹配插入数据库的CSV文件中的几行,该数据库以下划线开头和结尾 我在Python脚本中使用了正则表达式来实现同样的功能,但它将结果打印为“无”。这是我的代码,请告诉我我犯了什么错误: reg = re.compile(r'^_.*_$',re.I) imatch = reg.match(unicode(row[4], "utf8")) 在这里,r'^.*.\u$',re.I是我的正则表达式,用于匹配以^开头和结尾的行unicode(行[4],“utf8”
reg = re.compile(r'^_.*_$',re.I)
imatch = reg.match(unicode(row[4], "utf8"))
在这里,r'^.*.\u$',re.I
是我的正则表达式,用于匹配以^开头和结尾的行unicode(行[4],“utf8”)
指定插入数据库的CSV文件中的行
任何帮助都将不胜感激
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”而不是“\ux”结尾,这样regex将与字符串不匹配
file.csv
_abdlfla_
sldjlfds_
_adlfdls
_132jdlfjflds_
输出
_abdlfla_
_132jdlfjflds_
您可以使用startswith和endswith函数代替re。使用re的具体原因是什么
for l in open('test.csv'):
l=l.strip()
if l.startswith('_') and l.endswith('_'):
print(l)
如果不知道
行[4]
的内容以及要匹配的内容,就无法回答此问题。您知道吗,有些案例的开头和结尾都是不匹配的。
?unicode(第[4]行,“utf8”)=(aaaaa bbbb ccccc 5635!fgsfrq.)假设这是我的字符串,我想匹配一些以u开头和结尾的字符串,它应该与正则表达式匹配为什么你希望它与正则表达式匹配?它的开头和结尾都不是。
。如果我的错误,你能给我一个正确的重新语法来匹配吗?你想匹配什么?您说过只想匹配以开头和结尾的行。这不是你想做的吗?如果你包括一句关于为什么使用脱衣舞解决问题的话,我倾向于投赞成票。