我有一个有几行的文件。在这些行中,我只选择以xxx
开头的行。现在以xxx
开头的行有如下模式:
xxx:(12:"pqrs",223,"rst",-90)
xxx:(23:"abc",111,"def",-80)
我只想提取第一个双引号中的字符串 i、 e.,“pqrs”和“abc”。你知道吗
任何使用regex的帮助都将不胜感激。你知道吗
我的代码如下:
with open("log.txt","r") as f:
f = f.readlines()
for line in f:
line=line.rstrip()
for phrase in 'xxx:':
if re.match('^xxx:',line):
c=line
break
这个代码给了我一个错误
你想找以xxx开头的行吗 然后将行拆分为:。“:”后面的第一件事就是你想要的--直到逗号。那么你的结果就是那个字符串,但是去掉引号。不需要正则表达式。Python字符串函数就可以了
你的方向是对的。你知道吗
如果输入如此简单,可以使用regex组。你知道吗
所有的魔力都在正则表达式中。你知道吗
^xxx:(\d*:(“[^”]*”)表示
从行首开始,匹配“xxx:(<;任意数字>;:”<;除“>;”以外的任何数字
由于序列“<;anything but”>;”用圆括号括起来,因此它可以作为一个组使用(通过调用m.group(1))。你知道吗
PS:下次一定要包括你得到的准确错误
您的代码缩进错误。你的
f = f.readlines()
前面有9个空格,而for line in f:
前面有4个空格。它应该如下所示。你知道吗相关问题 更多 >
编程相关推荐