1

我有一个这样的字符串:

 <td casd2" aasdeft" class="satyle3">
    <b><a asddidasd?ct=Peasds&amp;fasdaao=Monsdar
    &amp;pID=19635"...

我需要19635。

有人可以帮助我吗?

4

3 回答 3

3

我会使用正则表达式来制作更简洁的解决方案:

>>> import re
>>> s = '<td casd2" aasdeft" class="satyle3"><b><a asddidasd?ct=Peasds&amp;fasdaao=Monsdar&amp;pID=19635"...'
>>> match = re.search(".*pID=(\d+).*",s)
>>> if match:
...   match.group(1)
... 
'19635'

漂亮又简单不是吗?

于 2011-11-19T20:45:01.293 回答
3

给出的信息很少,这就是我的处理方式:

import re

someString = ... # your original string

m = re.search(r"pID=(\d+)", someString)
pid = m.group(1)
于 2011-11-19T20:47:03.290 回答
1

如果您正在解析 HTML/XML,最好使用正确的工具。re 可以快速而肮脏地完成工作;但是当你以后扩展时会回来咬你(没有死的软件总是在进化)或者你需要处理相同数据的其他形式的表示。

Python 中的Beautiful Soup提供了很好的解析例程——值得通过学习曲线。

于 2011-11-25T03:16:25.317 回答