使用Python替换SQL中的特定文本
我正在使用Python替换sql文件中的某些字符串。字符串如下所示:使用Python替换SQL中的特定文本,python,sql,regex,Python,Sql,Regex,我正在使用Python替换sql文件中的某些字符串。字符串如下所示: <img title="\frac{3}{8}" src="http://latex.codecogs.com/gif.latex?\dpi{50}&space;\fn_phv&space;\frac{3}{8}" alt="" /> 基本上,它包含一部分html代码。但现在我想用以下内容代替: <sup>3</sup>⁄<su
<img title="\frac{3}{8}" src="http://latex.codecogs.com/gif.latex?\dpi{50}&space;\fn_phv&space;\frac{3}{8}" alt="" />
基本上,它包含一部分html代码。但现在我想用以下内容代替:
<sup>3</sup>⁄<sub>8</sub>
3&frasl;8.
为了在sql文件中替换它,我在Python中使用了这段代码
for line in filedata:
re.sub(r'<img\b[^<]*(?<=title=")\\frac\{(\d+)\}\{(\d+)\}"[^<]*>', "<sup>\g<1></sup>⁄<sub>\g<2></sub>", line)
对于文件数据中的行:
re.sub(r'=\nx 80=64','lakshmen K',NULL,'1','0','2015-05-03 15:54:19','0000-00-00:00'),
您的正则表达式没有像您认为的那样工作
filedata1 = re.sub(r'<img\b[^<]*(?<=title=")\\frac\{(\d+)\}\{(\d+)\}"[^<]*>', "<sup>\g<1></sup>⁄<sub>\g<2></sub>", filedata)
>a=''
>>>模式=r']
另外,更改replace字符串以使方法工作
import re
with open('/Users/cnnlakshmen/Downloads/qz_question.sql', 'r') as fin:
filedata = fin.read()
for line in filedata:
re.sub(r'<img\b[^<]*(?<=title=")\\frac\{(\d+)\}\{(\d+)\}"[^<]*>', "<sup>\g<1></sup>⁄<sub>\g<2></sub>", line)
filedata1 = re.sub(r'<img\b[^<]*(?<=title=")\\frac\{(\d+)\}\{(\d+)\}"[^<]*>', "<sup>\g<1></sup>⁄<sub>\g<2></sub>", filedata)
print filedata1
# Write the file out again
with open('/Users/cnnlakshmen/Downloads/qz_question1.sql', 'w') as fin:
fin.write(filedata1)
>>sub=“1&frasl;2”
>>>关于sub(模式、sub、a)
'3&frasl;8'
您的正则表达式没有像您认为的那样工作
filedata1 = re.sub(r'<img\b[^<]*(?<=title=")\\frac\{(\d+)\}\{(\d+)\}"[^<]*>', "<sup>\g<1></sup>⁄<sub>\g<2></sub>", filedata)
>a=''
>>>模式=r']
另外,更改replace字符串以使方法工作
import re
with open('/Users/cnnlakshmen/Downloads/qz_question.sql', 'r') as fin:
filedata = fin.read()
for line in filedata:
re.sub(r'<img\b[^<]*(?<=title=")\\frac\{(\d+)\}\{(\d+)\}"[^<]*>', "<sup>\g<1></sup>⁄<sub>\g<2></sub>", line)
filedata1 = re.sub(r'<img\b[^<]*(?<=title=")\\frac\{(\d+)\}\{(\d+)\}"[^<]*>', "<sup>\g<1></sup>⁄<sub>\g<2></sub>", filedata)
print filedata1
# Write the file out again
with open('/Users/cnnlakshmen/Downloads/qz_question1.sql', 'w') as fin:
fin.write(filedata1)
>>sub=“1&frasl;2”
>>>关于sub(模式、sub、a)
'3&frasl;8'
使用r'的方法使用r'的方法
>>> pattern = r'<img\b[^<]*(?<=title=")\\frac\{\d+\}\{\d+\}"[^<]*>'
>>> re.findall( pattern, a)
['<img title="\\frac{3}{8}" src="http://latex.codecogs.com/gif.latex?\\dpi{50}&space;\\fn_phv&space;\\frac{3}{8}" alt="" />']
>>> sub = "<sup>1</sup>⁄<sub>2</sub>"
>>> re.sub(pattern, sub, a)
'<sup>3</sup>⁄<sub>8</sub>'
r'<img\b[^<]*(?<=title=")(?:\\\\small )?\\\\frac\{(\d+)}\{(\d+)}"[^<]*>'