Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 需要根据:(冒号)而不是用双引号括起来的冒号拆分sting_Java_Split_Colon - Fatal编程技术网

Java 需要根据:(冒号)而不是用双引号括起来的冒号拆分sting

Java 需要根据:(冒号)而不是用双引号括起来的冒号拆分sting,java,split,colon,Java,Split,Colon,需要根据:冒号拆分字符串,而不是使用双引号括起来的冒号,例如abc:ghi:123:456,拆分结果应该是这样的,第一部分abc:ghi,第二部分应该是123:456。Java。实际上,它相当简单。您可以通过谷歌搜索或查看正则表达式来了解更多有关正则表达式的信息,我在这里使用的工具 您想要的模式是: (?<="):(?!")|(?<!"):(?=")|(?<!"):(?!") 请注意,已变为\以逃避它。如果你不加反斜杠,你会出错的 您可以使用正则表达式精确匹配:而不是: 使用

需要根据:冒号拆分字符串,而不是使用双引号括起来的冒号,例如abc:ghi:123:456,拆分结果应该是这样的,第一部分abc:ghi,第二部分应该是123:456。Java。

实际上,它相当简单。您可以通过谷歌搜索或查看正则表达式来了解更多有关正则表达式的信息,我在这里使用的工具

您想要的模式是:

(?<="):(?!")|(?<!"):(?=")|(?<!"):(?!")
请注意,已变为\以逃避它。如果你不加反斜杠,你会出错的


您可以使用正则表达式精确匹配:而不是:


使用您的字符串示例abc:ghi:123:456正则表达式[a-z0-9]{3}:[a-z0-9]{3}将匹配abc:ghi和123:456

可能会帮助您解决问题。请确保接受最有用的答案-向下滚动到该答案并单击绿色复选标记。该答案准确,但似乎不如完全不是我的答案灵活。尽管如此,如果部分都是相同的长度和包含:,那么这是伟大的作品;只要用正确的数字替换3就行了is@QPaysTaxes同意。我的回答只是作为一个例子,他可以使用regex来匹配:vs just:,基于OP给出的字符串示例。我的解决方案只有在给定的字符串OP试图匹配他的示例,或者非常接近示例格式的情况下才有效。@cecil不用担心!这不是什么大麻烦,真的,只是奇怪。
string.split("(?<=\"):(?!\")|(?<!\"):(?=\")|(?<!\"):(?!\")");