字符串里有回车符应该怎么查找位置?

2016-06-22 23:51:34 +08:00
 omg21
#-*-coding:utf-8-*-
htmlstr=
'''
。。。
</td>
</tr>
</table>
<ul>
<li>
<a></a>
<a></a>
</li>
</ul>
。。。
<td>页次
'''

ksstr='</table>\n<ul>\n<li>'
jsstr='<td>页次'
ks=htmlstr.find(ksstr)
js=htmlstr.find(jsstr)
lbylist=htmlstr[ks:js]
print(lbylist)
print(ks)

这段代码是想从 htmlstr 中截取一段,有开始和结尾代码,分别是 ksstr 和 jsstr ,这段代码测试通过。
但当我把 ksstr 和 jsstr 两个字符串的值分别存入数据库,然后直接解析网页页面,在程序里取出来时, ks 的值就是-1 了,很明显是“</table>\n<ul>\n<li>”这个地方出了问题。
我现在搞不清是\n 的问题还是编码的问题,也试过\n\r ,还是不行。网页的编码是 gb2312 。想起来了,应该不是编码的问题,因为还有其他的页面也是 gb2312 的,也通过了,就这一个带\n 的出了问题。
2918 次点击
所在节点    Python
9 条回复
l12ab
2016-06-23 00:23:59 +08:00
\n
\r\n
imn1
2016-06-23 01:59:46 +08:00
\s*\n\s*
omg21
2016-06-23 06:14:21 +08:00
@imn1 还是不行,我要把“</table>\n<ul>\n<li>”存到数据库里,然后在程序里读出来,改成这样还是不行“</table>\s*\n\s*<ul>\s*\n\s*<li>”
ghostheaven
2016-06-23 08:02:19 +08:00
数据库的字符串编码, php 源代码的编码呢,都是 gb2312 么
weakiwi
2016-06-23 08:46:14 +08:00
js 和 php 的正则都有多行查找模式
Cabana
2016-06-23 09:01:53 +08:00
我来吐个槽,拼音缩写命名,看了半天没理解 ks 和 js 是什么意思,突然才恍然大悟。
Cabana
2016-06-23 09:04:00 +08:00
一个笨办法,存取数据库时 base64 一下,就不会出现这种问题了
ango
2016-06-23 09:31:49 +08:00
@Cabana start & end
jason19659
2016-06-23 13:59:09 +08:00
写正则吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/287678

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX