我在以下程序中提取某些数据时遇到问题,其中标有粗体和斜体。我想从文件中提取这些数据并按如下方式处理它。
i 1CAT(0)
i 2CAT(1)
o 22CAT(10)
o 23CAT(9)
g1 ***and*** 6CAT(**3**) 3CAT(**2**) ; 11CAT(**5**)
g2 ***or*** 3CAT(**2**) 1CAT(**0**) ; 10CAT(**16**)
示例:
第5行:if(和)出现然后做3 + 2 * 5
第6行:if(或)出现然后做2-0 + 16
等...
代码到现在为止:
import os
os.chdir('/home/pr/Documents/')
inputFile=open('C17.txt','r')
inputfile.readline()
print inputFile.read()
inputFile.close()
答案 0 :(得分:1)
您需要区分要在字符串中匹配的大括号和属于正则表达式的大括号。
所有类型的大括号对正则表达式都有特殊含义,因此如果要匹配它们,则需要将它们转义。
关于评论中的正则表达式
re.findall(R '(0-9)',INPUTFILE)
re.findall
(link),需要一个字符串作为第二个参数而不是文件句柄。
(0-9)
只匹配一个数字,因为括号未转义,所以该值会存储在捕获组中。 (Check here the paragraph (...)
)。如果您想同时匹配多个数字的数字,您应该查看量词(+
,*
,{m,n}
相同的链接。)
关于OP中的代码
您知道您提供的代码与任务没什么关系(文件打开和关闭除外)。您可能希望查看有关"Reading and Writing Files"
的Python教程