Python: получить количество успешно подобранных групп для регулярных выражений - PullRequest
0 голосов
/ 16 марта 2020

Я хочу захватить данные и числа из строки в python. Строка является измерением от радиочастотного датчика, поэтому она может быть повреждена из-за плохой передачи. Строки от датчика выглядят так PA1015.7 TMPA20.53 HUM76.83.

Мой ответ:

s= re.search('^(\D+)([0-9.]+'),message)

Теперь, прежде чем продолжить, я хочу проверить, действительно ли я получил ровно два совпадения правильно или строка искажена.

Так что я пробовал:

len(s)

Но из-за ошибок:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: object of type '_sre.SRE_Match' has no len()

Мне нужен доступ к элементам группы соответствий для последующей обработки. (Я думаю, что это устраняет поиск)

key= s.group(1)
data= s.group(2)

Чего не хватает?

1 Ответ

0 голосов
/ 16 марта 2020

Вместо использования search вместо этого следует использовать findall:

s = re.findall('(\D+)([0-9.]+)',message)
print("matched " + str(len(s)))

search возвращает только то, есть или нет совпадение во входной строке, в форме логического значения .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...