我有一个这样的字符串:
<td casd2" aasdeft" class="satyle3">
<b><a asddidasd?ct=Peasds&fasdaao=Monsdar
&pID=19635"...
我需要19635。
有人可以帮助我吗?
我会使用正则表达式来制作更简洁的解决方案:
>>> import re
>>> s = '<td casd2" aasdeft" class="satyle3"><b><a asddidasd?ct=Peasds&fasdaao=Monsdar&pID=19635"...'
>>> match = re.search(".*pID=(\d+).*",s)
>>> if match:
... match.group(1)
...
'19635'
漂亮又简单不是吗?
给出的信息很少,这就是我的处理方式:
import re
someString = ... # your original string
m = re.search(r"pID=(\d+)", someString)
pid = m.group(1)
如果您正在解析 HTML/XML,最好使用正确的工具。re 可以快速而肮脏地完成工作;但是当你以后扩展时会回来咬你(没有死的软件总是在进化)或者你需要处理相同数据的其他形式的表示。
Python 中的Beautiful Soup提供了很好的解析例程——值得通过学习曲线。