2016-09-23 6 views
1

Я пытаюсь создать регулярное выражение , который соответствует следующей схеме:Использование регулярных выражений, чтобы соответствовать определенному образцу в Python

Примечание: x представляет собой число, например, 2

Выкройка:

u'id': u'x'    # x = Any Number e.g: u'id': u'2' 

До сих пор я попытался folllowing:

Regex = re.findall(r"'(u'id':u\d)'", Data) 

Однако никаких совпадений не были найдены.

+1

Попробуйте: 'r 'u'id' \ s *: \ s * u '\ d +'" ' – anubhava

ответ

2

Вы потеряли одиночные кавычки, и вы должны использовать \d+ вместо просто \d:

>>> s = "u'id': u'2'" 
>>> re.findall(r"u'id'\s*:\s*u'\d+'", s) 
["u'id': u'2'"] 
+0

Отлично! Спасибо за быструю помощь. Могу ли я спросить, что делают «*» и «\ s»? – ThatOnePythonNoob

+0

'\ s *' соответствует 0 или более пробелам. Двойные кавычки или одинарные кавычки вокруг регулярного выражения необходимы, поскольку регулярное выражение имеет тип строки. Здесь, поскольку одинарная кавычка является частью самого регулярного выражения, нам нужно использовать двойную кавычку для постоянной строки регулярного выражения. – anubhava

2

Это регулярное выражение будет соответствовать вашей модели:

u'id': u'(\d+)'

важных битами регулярного выражения здесь являются:

  • скобки (), что делает захват группы (так что вы можете получить информацию
  • цифровой маркер \d, который указывает любую цифру 0 - 9
  • кратный маркер +, что означает «по меньшей мере, 1»

Проверено на следующих моделей:

u'id': u'3' 
u'id': u'20' 
u'id': u'250' 
u'id': u'6132838' 
1

Попробуйте следующее:

str1 = "u'id ': u'x'"

re.findall (r'u \ 'идентификатор \': и \ '\ d + \ ' str1)

Вам нужно бежать одиночные кавычки ('), потому что это специальный символ

+0

Почему избежать одиночных кавычек, когда вы можете использовать двойные кавычки? И никогда не переопределяйте встроенные идентификаторы, такие как 'str'. – Wombatz

+0

@Wombatz Извините, у меня есть имя строки, но это хорошая практика, чтобы избежать одиночной кавычки ('), потому что она должна быть экранирована, если мы используем r' 'вместо r "" –

+0

Если вы используете 'r" "' you don не нужно ничего спасать. – Wombatz

 Смежные вопросы

  • Нет связанных вопросов^_^