Разделить в соответствии с условием регулярного выражения - PullRequest
1 голос
/ 25 апреля 2019

Это будет еще один мой вопрос:

string = "Organization: S.P. Dyer Computer Consulting, Cambridge MA"

Как я могу взять все символы, несмотря на то, что они являются точками полного хода, цифрами или чем-то еще после "Organization:" с использованием регулярных выражений?

result_organization = re.search("(Organization: )(\w*\.*\w*\.*\w*\s*\w*\s*\w*\s*)", string)

Мой приведенный выше код очень длинный и совсем не мудрый.

Ответы [ 3 ]

1 голос
/ 25 апреля 2019

Я бы порекомендовал использовать команду find следующим образом

 print(string[string.find("Organization")+14:])
1 голос
/ 25 апреля 2019

Для этого вам не нужно регулярное выражение, этот простой код должен дать желаемый результат:

str = "Organization: S.P. Dyer Computer Consulting, Cambridge MA";
if str.startswith("Organization: "):
    str = str[14:];

print(str)

Вы также можете использовать шаблон (?<=Organization: ).+

Объяснение:

(?<=Organization: ) - положительный вид сзади, утверждает, что предшествующее значение Organization:

.+ - соответствует любому символу, кроме символов новой строки.

Демо

0 голосов
/ 25 апреля 2019

Вы можете использовать одну группу захвата вместо 2 групп захвата.

Вместо указания всех слов (\w*\.*\w*\.*\w*\s*\w*\s*\w*\s*) вы можете выбрать совпадение с любым символом, кроме новой строки, используя точку, а затем сопоставить 0+ раз, чтобы соответствовать до конца.

Но учтите, что это также будет соответствовать строкам типа #@$$ ++

^Organization: (.+)

Regex demo | Демо Python

Например

import re
string = "Organization: S.P. Dyer Computer Consulting, Cambridge MA"
result_organization = re.search("Organization: (.*)", string)
print(result_organization.group(1))

Если вам нужен более строгий шаблон, вы можете использовать класс символов и указать, что вы хотите сопоставить. Например:

^Organization: ([\w.,]+(?: [\w.,]+)*)

Regex demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...