Я пытаюсь использовать Python v2 (2.7.5 специально) и модуль 're' для сопоставления регулярных выражений. Моя проблема в том, что для моего приложения мне нужно сопоставить символ «пробел» (т. Е. 0x20 в шестнадцатеричном формате) и ТОЛЬКО этот символ как часть строки соответствия. Первое, что я пробовал для этого, это «\ s», и это не работает, потому что оно также соответствует новой строке, возврату, вкладке и форме.Как совместить символ «пробел» (и только пробел) в python2 regex?
Конечное требование должно соответствовать строке, где первые три символа являются цифрами ('\ 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», чтобы оценить значение Нет, потому что он имеет символ табуляции вместо пробела. Как я могу это сделать?
'\ s' соответствует любому символу пробела; если вы хотите пробел, * используйте пробел *. – jonrsharpe
Просто введите фактический пробел в вашем регулярном выражении. – BrenBarn
Вы, кажется, знаете классы символов, \ s, space. Как вы пропустили это пространство? – sln