2015-04-30 3 views
-3

У меня есть питон строкапитон регулярное выражение из строки

wrong_data_type is not one of the allowed values `([one_two, two_three, three_four])` 

и у меня есть регулярное выражение:

\w+ is not one of the allowed values`\(\[\w,+\)\]` 

Однако, это не правильно? Любая помощь?

+0

Не правильно. Как расплывчато? Что вы хотите достичь. –

+0

Что вы пытаетесь сделать? –

+1

Регулярное выражение не имеет пробела после 'values', и оно не имеет пробела после запятой внутри' ([]) ' – Barmar

ответ

2

Регулярное выражение должно быть

\w+ is not one of the allowed values `\(\[(?:\w+,)*\w+\]\)` 

Исправления:

  1. Добавлено пространство после values.
  2. \]\) в конце вместо \)\].
  3. Внутри кронштейнов необходимо разрешить несколько \w, поэтому должно быть \w+.
  4. Нужно иметь место после ,.
  5. Нужно создать группу вокруг \w+,, чтобы совместить несколько разделенных запятыми слов, используя квантор *.
  6. Затем нужно сопоставить одно последнее слово без запятой после него.
0
data = re.search(r'\(\[[\w,\s]+\]\)', string).group() 
0

Вы можете использовать следующее:

\w+ is not one of the allowed values `\(\[[\w,\s]+\]\)` 
+0

Это будет соответствовать '([, word,])' в конце. Но, может быть, это достаточно хорошо. – Barmar

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