如何在python2正则表达式中匹配'space'符号(并且只有空格)?

时间:2016-05-09 19:09:52

标签: python regex

我正在尝试使用Python v2(特别是2.7.5)和're'模块进行正则表达式匹配。我的问题是,对于我的应用程序,我需要匹配'空格'符号(即十六进制的0x20)和仅作为匹配字符串的一部分的符号。我尝试的第一件事是'\ s',但这不起作用,因为它也匹配换行符,返回,制表符和表单。

最终要求是匹配一个字符串,其中前三个字符是数字('\ d'),有一个逗号(','),然后八个符号是数字('\ d')或空格(???)。

有关如何做到这一点的任何建议?我已经尝试过了......

 C:\Users\jlaird>python
 Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import re
 >>> goodstring = '333,000000 2'
 >>> badstring = '333,000000\t2'
 >>> print badstring
 333,000000      2
 >>> sRegex = '\d\d\d,[\s\d][\s\d][\s\d][\s\d][\s\d][\s\d][\s\d][\s\d]'
 >>> cRegex = re.compile(sRegex)
 >>> cRegex.match(goodstring)
 <_sre.SRE_Match object at 0x023A7A30>
 >>> cRegex.match(badstring)
 <_sre.SRE_Match object at 0x025E82C0>
 >>>

我希望'badstring'评估为None,因为它有制表符而不是空格。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

谢谢jonrsharpe ......工作。我制作复杂的东西总是很简单。遗憾...

>>> sRegex = '\d\d\d,[ \d][ \d][ \d][ \d][ \d][ \d][ \d][ \d]'
>>> cRegex = re.compile(sRegex)
>>> cRegex.match(goodstring)
<_sre.SRE_Match object at 0x023A7A30>
>>> cRegex.match(badstring)
>>>