正则表达式从字符串中提取逗号分隔的字符串

时间:2016-12-27 11:50:52

标签: java regex pattern-matching

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

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

正则表达式 Matcher在字符串后正确匹配,没有任何问题。

\(([^)]+)\)

但是当原始字符串中的字符串('A', '36254632546', 0, 'Test, test1', NULL) 可用时无法匹配。我尝试将convert(datetime, 'Dec 27 2016 10:36:54', 116)放在最后),但似乎无效。

要匹配的字符串= $

1 个答案:

答案 0 :(得分:3)

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

你在正则表达式中所说的是'('然后将除了'之外的所有内容组合')后跟')'然后它会停止,即使你把美元符号放在最后因为结尾不存在你剩下的字符串之后第一个')'。

'+'符号表示连续字符。

如果你想匹配所有字符串,你必须说出像

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

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

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