我正在使用python2.7和scrapy.20
我有这个测试
0552121152, +97143321090
我想得到comma
前面的值和后面的值。你知道吗
我的正则表达式是
\s*(.*),
前一个
和,\s*(.*)
后面的那个
在这两方面我都得到了整个测试
为什么?
对于需要详细信息的用户,请参见:
这是我在shell的cmd中的代码:
s =sel.xpath("normalize-space(.//span[@class='content_agent']/span[last()]/span[2]/text())")
s.re(r'\s*(.*),')
我不是问得到这些值的解决方案,而是问为什么我提到的正则表达式不起作用
试着这样做:
结果:
唯一的区别可能是因为我使用了
.groups()
方法,这就是我得到它的原因。如果您可以在您的终端上重现这一点,那么错误的不是您的正则表达式,而是您的编码风格。你知道吗除此之外,我根本看不出正则表达式是如何失败的。你知道吗
类似这样的内容将把逗号前面的部分存储在
\1
中,而逗号后面的部分存储在\2
这将查找后跟一些数字的可选空白字符数。然后查找空格或逗号(或两者都有),后跟由数字字符类和/或加号组成的另一个字符串。你知道吗
因为
.
也匹配,
,这是一个贪婪的选择。使用更具体的符号,如[^,]
或\d
,而不是.
符号。你知道吗相关问题 更多 >
编程相关推荐