Регулярное выражение для сопоставления и исключения - PullRequest
0 голосов
/ 20 февраля 2019

Я соскребал страницы, чтобы составить список, чтобы сравнить цены и размеры.Я использовал только widthxlength, исключая высоту.Однако некоторые измерения имеют высоту, а иногда и десятичные дроби, например:

5.0x10.0x8.0

10.0x10.0x9.0

10.0x15.0x9.0

10.0x20.0x9.0

Я пытаюсь исключить 0 и последнее измерение.Чтобы получить только:

5x10 10x10 10x15 10x20

Я использовал \d+[ ][X][ ]\d+ и (\d+'x\d+') для аналогичных проблем, но у меня возникают проблемы с поиском способа решения этой проблемы.

1 Ответ

0 голосов
/ 20 февраля 2019

Вы можете сопоставить всю строку, захватив целую часть ширины и длины, и заменить двумя группами захвата.Сопоставьте

(\d+)\.\d+x(\d+)\.\d+(?:x\d+\.\d+)?

и замените на

$1x$2

https://regex101.com/r/BOkRx6/3

Если десятичная часть может не существовать, тогда поместите каждую десятичную часть в шаблоне в необязательную.группа без захвата:

(\d+)(?:\.\d+)?x(\d+)(?:\.\d+)?(?:x\d+(?:\.\d+)?)?

https://regex101.com/r/BOkRx6/4

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