Разделение строки, разделенной запятыми, с запятыми, которые не должны быть разделены - PullRequest
0 голосов
/ 01 февраля 2019

В настоящее время я собираю html с общедоступного веб-сайта, чтобы создать более оптимизированную базу данных для целей моего клиента.Этот конкретный веб-сайт предлагает экспорт в CSV, который был бы гораздо предпочтительнее, чем просмотр HTML - но у CSV есть некоторые ограничения, для которых я просто не вижу обходных путей.

Возьмем, к примеру, этот список компаний.В html - это простая ul, и я просто перебираю каждую li, чтобы получить отдельную компанию

<ul>
    <li>Lerner New York, Inc.</li>
    <li>Charming Shoppes, Inc.</li>
    <li>Lane Bryant, Inc.,</li>
    <li>Nordstrom, Inc.</li>
</ul>

В экспорте CSV - эти данные (одна ячейка) выглядят так:

Lerner New York, Inc., Charming Shoppes, Inc., Lane Bryant, Inc., Nordstrom, Inc.

Разделить эту строку на запятую проблематично, потому что тогда я получаю:

Lerner New York|Inc.|Charming Shoppes|Inc.|Lane Bryant|Inc.

Хотелось бы, чтобы это было так же просто, как игнорирование Inc. - но это не так просто.

У вас естьУ вас, бывших волшебников, есть какая-нибудь магия, которую вы можете предложить, чтобы решить эту проблему?

1 Ответ

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

Вы можете использовать это регулярное выражение, которое имеет положительный взгляд, только для выбора запятых (за которыми следует один или несколько пробелов), перед которыми стоит буквальная точка.Просто разделите, используя это регулярное выражение.

(?<=\.),\s+

Демо

Java-код для разделения,

String s = "Lerner New York, Inc., Charming Shoppes, Inc., Lane Bryant, Inc., Nordstrom, Inc.";
Arrays.stream(s.split("(?<=\\.),\\s+")).forEach(System.out::println);

Печать

Lerner New York, Inc.
Charming Shoppes, Inc.
Lane Bryant, Inc.
Nordstrom, Inc.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...