拆分逗号定界的字符串,该字符串具有不应该转义的逗号,

时间:2019-02-01 14:40:30

标签: regex

我目前正在从公共网站上删除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.一样简单-但不是那么简单。

你们中的任何一个reg-ex向导都有解决问题的魔法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式后面的正则表达式来仅选择逗号(后接一个或多个空格)并以文字点开头。因此,只需使用此正则表达式进行拆分即可。

(?<=\.),\s+

Demo

用于拆分的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.