Регулярное выражение для соответствия только части, которая не имеет следующих нескольких пробелов - PullRequest
2 голосов
/ 13 апреля 2019

У меня есть текст, который центрирован по левому и правому краям на экране и выглядит так

From:
DEMO - Sliced Invoices                                            Order Number
Suite 5A-1204                          Order Number
123 Somewhere Street                  Order Number
Your City AZ 12345                      Order Number
admin@slicedinvoices.com                  Order Number

Чего я пытаюсь добиться, так это написать регулярное выражение, чтобы получить только левые части, игнорирующие часть номера заказа, которая может быть любым текстом, а не номером заказа ... Возможно ли, что я попытался проигнорировать несколько пробелов без удачи.

Пока я придумал это:

F.{1,250}?:+\nD.{1,250}?  

Что читает

From:
Demo - Sliced Invoices  

Но я не могу перейти к следующей строке, потому что номер заказа находится на той же строке ...

Ответы [ 2 ]

5 голосов
/ 13 апреля 2019

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

^.*?(?=\s{2,}|\n)
  • ^ - начало строки
  • .+? - Совпадение с чем угодно, кроме нуля новой строки или большего времени
  • (?=\s{2,}|\n) - положительный взгляд для проверки двух или более пробелов или новой строки

let str = `From:
DEMO - Sliced Invoices                                            Order Number
Suite 5A-1204                          Order Number
123 Somewhere Street                  Order Number
Your City AZ 12345                      Order Number
admin@slicedinvoices.com                  Order Number`

let op = str.match(/^.+?(?=\s{2,}|\n)/gm)

console.log(op)
0 голосов
/ 13 апреля 2019

Это регулярное выражение захватывает все до двух или более пробелов или разрыв строки, используя lookahead .

const regex = /^(.*?)(?= {2,}|\n)/gm;
const txt = document.querySelector('div').textContent;
const matches = txt.match(regex);
console.log(matches);
<div>From:
DEMO - Sliced Invoices                                            Order Number
Suite 5A-1204                          Order Number
123 Somewhere Street                  Order Number
Your City AZ 12345                      Order Number
admin@slicedinvoices.com                  Order Number</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...