Как использовать re для получения нескольких переменных с одинаковым форматированием? - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь получить строки с похожим шаблоном несколько раз.

Например, для моей строки "SeNetworkLogonRight = *S-1-5-11,*S-1-5-32-544" я пытаюсь получить "*S-1-5-11" и "*S-1-5-32-544" идобавить их в список.Я попытался сделать следующее:

>>> test = "SeNetworkLogonRight = *S-1-5-11,*S-1-5-32-544"
>>> print(re.findall('[*].[^.]*\d$', test))


Result obtained:
['*S-1-5-11,*S-1-5-32-544']

Как получить значения отдельно и добавить их в список в таком формате?

['*S-1-5-11', '*S-1-5-32-544']

1 Ответ

0 голосов
/ 28 января 2019

Вы можете сопоставить звездочку и любые 1+ символов, кроме запятых после:

r'\*[^,]+'

Подробности

  • \* - звездочка (в противном случае необходимо экранировать, так как это специальный метасимвол регулярного выражения)
  • [^,]+ - класс отрицательных символов, соответствующий 1 или более символам, отличным от запятой.

Python demo :

import re
test = "SeNetworkLogonRight = *S-1-5-11,*S-1-5-32-544"
print(re.findall(r'\*[^,]+', test))
# => ['*S-1-5-11', '*S-1-5-32-544']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...