2016-05-09 3 views
-1

Я пытаюсь использовать 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», чтобы оценить значение Нет, потому что он имеет символ табуляции вместо пробела. Как я могу это сделать?

+2

'\ s' соответствует любому символу пробела; если вы хотите пробел, * используйте пробел *. – jonrsharpe

+0

Просто введите фактический пробел в вашем регулярном выражении. – BrenBarn

+0

Вы, кажется, знаете классы символов, \ s, space. Как вы пропустили это пространство? – sln

ответ

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) 
>>> 
Смежные вопросы