Regex получить каждую строку от начала до новой строки? - PullRequest
0 голосов
/ 27 февраля 2020

У меня есть такая строка:

Name: Yoza Jr
Address: Street 123, Canada
Email: yoza@gmail.com

Мне нужно получить данные с помощью регулярных выражений до новой строки, например

Начать с Name: получить Yoza Jr до new line для данных имени

, чтобы я мог иметь 3 данных Name, Address, Email

Как Regex получить каждую строку от начала до новой строки?

Кстати, я буду использовать ее в golang: https://regex-golang.appspot.com/assets/html/index.html

Ответы [ 2 ]

2 голосов
/ 27 февраля 2020

Шаблон ^.*$ должен работать, см. Демонстрацию здесь . Это предполагает, что .* не будет работать в режиме точка-все, что означает, что .* не будет проходить после новой строки \r?\n в конце каждой строки.

Если вы хотите захватить значение поля , затем используйте:

^[^:]+:\s*(\S+)$

Требуемое количество будет присутствовать в первой группе захвата.

0 голосов
/ 27 февраля 2020

Я бы посоветовал вам использовать шаблон ^(.+):\s*(.*)$

Демо: https://regex101.com/r/Q9D4RM/1

Мало того, что это приведет не только к 3 различным совпадениям для строки, заданной вы, имя поля (перед ":") будет читаться как группа 1 совпадения, а значение (после ":") будет читаться как группа 2. Так что, если вы хотите пары ключ-значение, вы можете просто искать группы 1 и 2. для каждого совпадения.

Пожалуйста, дайте мне знать, если неясно, чтобы я мог уточнить.

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