我是regex和python的新手,我正在努力解决以下问题。我有一个来自文件的特定字符串:
<td align="left">
<(this, '/hdm/SingleDeviceMgmt/getDevice.do?deviceID)>
<ahref="editDevice.do?deviceID=100089">
<do?deviceID/iopp>
GSE5677789
</a>
</td>
<input type="text" name="serialNumber" id="serialNumber"
class="input_field" value="GSE5677789" title="Enter Number. ">
<ahref="editDevice.do?deviceID=100089">
我需要从字符串中获取等于100089的deviceID。
我写的python代码是:
import re
with open('json_conversion.txt') as f:
for line in f:
if "GSE5677789" and 'deviceID' in line:
s=re.search(r'^deviceID=//.*\.',line)
print s
但我得到的是无。
任何人都可以帮忙。
答案 0 :(得分:1)
import re
your_string = """
<td align="left">
<ahref="editDevice.do?deviceID=100089">
GSE5677789
</a>
</td>
<input type="text" name="serialNumber" id="serialNumber"
class="input_field" value="GSE5677789" title="Enter Number. ">
<ahref="editDevice.do?deviceID=100089">
"""
m = re.search('deviceID=([0-9]*)', your_string).group(1)
答案 1 :(得分:1)
首先,我无法弄清if "G1A115051301136"
要实现的目标。
其次,你的正则表达式是错误的。请改为'deviceID=(\d+)'
。
正则表达式中的^
是行开头的标记,这只会匹配一个行的开头的短语。我的答案中的括号表示一个捕获组,并允许从返回的结果中轻松提取数字。
我亲自测试我使用this等在线工具编写的所有正则表达式。