Как я могу получить чье-то имя из строки с регулярным выражением в Python? - PullRequest
0 голосов
/ 07 октября 2019
string = 'company: / name: James / Street: 24 High Road /'
name = re.search('Name:(.*)/(.*)Street:)', string)
print(name)

Я пытаюсь получить 'Джеймс' из приведенной выше строки с помощью регулярного выражения, но не могу найти решение для этого. Как я могу решить эту ситуацию с помощью регулярных выражений?

Ответы [ 2 ]

3 голосов
/ 07 октября 2019

Преобразование моего комментария в ответ, так как это правильное место для него.

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

>>> string = 'company: / name: James / Street: 24 High Road /'
>>> print ( re.search(r'(?i)name:\s*(\w+)', string).group(1) )
James

(?i) позволяет игнорировать совпадение регистра для вашего регулярного выражения.

Если вы хотите заявить о наличии Street: после вашего матча, используйте это регулярное выражение с предварительным утверждением:

>>> print ( re.search(r'(?i)name:\s*(\w+)(?=\W+Street:)', string).group(1) )
James
0 голосов
/ 07 октября 2019

если соглашение о присвоении имен является последовательным, вы можете использовать .split (), чтобы разделить его на список

stringy = 'company: / name: James / Street: 24 High Road /'

name = stringy.split('/')

edit: это будет захватывать только элемент с именем

name = [n for n in name if 'name' in n]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...