【问题标题】:Regex to extract string separated by comma from a string正则表达式从字符串中提取用逗号分隔的字符串
【发布时间】:2016-12-27 11:50:51
【问题描述】:

我想在与模式匹配后提取所有以逗号分隔的值(,)。

首先我将字符串与正则表达式匹配,然后使用Matcher 提取值。

Regex= \(([^)]+)\) 正确匹配后面的字符串,没有任何问题。

('A', '36254632546', 0, 'Test, test1', NULL) 

但当字符串convert(datetime, 'Dec 27 2016 10:36:54', 116) 在原始字符串中可用时无法匹配。我尝试通过将$ 放在最后来匹配最后一个),但似乎不起作用。

要匹配的字符串 = ('A', convert(datetime, 'Dec 27 2016 10:36:54', 116), 0, 'Test, test1', NULL)

【问题讨论】:

标签: java regex pattern-matching


【解决方案1】:

这是因为您的正则表达式在第一个 ')' 处停止。

您在正则表达式中所说的是以 '(' 开始,然后将除 ')' 之外的所有内容分组,然后是 ')' 所以即使您在末尾放置美元符号,它也会停止,因为结尾不在那里,您之后还有剩余的字符串第一个')'。

“+”号表示连续字符。

如果你想匹配所有的字符串,你必须告诉类似

\\(([^)]+\\)[^)]+)\\);

但这与你程序的逻辑有关。

此外,如果您想要多组逗号,则必须更改您的正则表达式,以便这些组是逗号组。

【讨论】:

    猜你喜欢
    • 2013-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多