Искать одно слово перед символом и одно слово после - PullRequest
2 голосов
/ 06 июня 2019

Я хочу получить два слова из строки, одно перед "__", а другое после.Для примера:

'?o=-1' # Skip it
'?client__name=Client1&o=-1' # Should return client__name
'?o=-1&product__name=Product1+Test1' # Should return product__name

Ближайшее, что у меня было:

after:  (?:__).*[a-z]
before: (\S+?)__

Я пытаюсь использовать его в python

Ответы [ 2 ]

0 голосов
/ 06 июня 2019

Вы можете использовать группу захвата:

[&?]([^\W_]+__[^\W_]+)=

Это будет соответствовать:

  • [&?] Соответствует либо & или?
  • ( Захватывающая группа
    • [^\W_]+__[^\W_]+ Совпадение 1+ раз слово char, кроме подчеркивания, затем __ и снова 1+ слово char, кроме подчеркивания
  • ) Закрыть группу захвата
  • = Совпадение буквально

Regex demo

0 голосов
/ 06 июня 2019

Вы можете использовать

[^\W_]+__[^\W_]+

См. regex demo и его график :

enter image description here

Подробности

  • [^\W_]+ - 1 или более букв или цифр
  • __ - __ подстрока
  • [^\W_]+ - 1 или более букв или цифр.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...