no match '"test, foo bar", "test"' => "test, foo bar"-6ren">
gpt4 book ai didi

java - 选择带逗号的字符串(正则表达式)

转载 作者:行者123 更新时间:2023-11-29 08:19:13 24 4
gpt4 key购买 nike

我需要一个匹配以下内容的正则表达式:

'"test foo bar", "test"' => no match
'"test, foo bar", "test"' => "test, foo bar"
'"test, foo bar"' => "test, foo bar"
'"test foo bar"' => no match
'"test", "test, foo"' => "test, foo"
'"test", ","' => no match
'"test", 0, 0, "foo"' => no match

正则表达式应该匹配任何包含逗号的字符串

我从 \".+?\" 开始,但它一直选择到下一个字符串,这对我来说不适用。

编辑:谢谢,在你的帮助下我弄明白了 \"[\w]+?,.+?\"

最佳答案

您绝对必须在一个正则表达式中执行此操作吗?我会使用一个正则表达式将字符串拆分为其组成部分,然后遍历这些部分以找到第一个带逗号的部分。

我还没有在这台笔记本电脑上安装 Java,所以我无法检查执行拆分的代码,但我希望正则表达式是这样的:

("[^"]*")(?:, ("[^"]*"))*

Java 正则表达式引擎可能不允许您为同一个捕获组获得多个匹配项,但是...我很确定您可以在 .NET 中轻松地使用它,但它可能会稍微有点棘手在 java 。您可能需要这样的东西:

(?:^|, )("[^"]*")

在实际字符串开始之前使用“行首或逗号后跟空格”。

所有这些仍然只是试图将文本拆分成它的位 - 它不是试图找到第一个包含逗号的字符串......但它可能是这样做的起点.不幸的是,那时我的 regex-fu 用完了——我仍然会以“拆分然后迭代”的方式进行:)

关于java - 选择带逗号的字符串(正则表达式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1642048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com