需要根据 :(冒号) 拆分字符串,而不是用双引号引起来的冒号
need to split sting based on :(colon) but not the colon which is enclosed in double Quotes
需要根据:(冒号)拆分字符串,而不是双引号中的冒号,例如abc":"ghi:123":"456
,拆分结果应该是这样的,第一部分abc":"ghi
,第二部分应该是 123":"456
。 Java.
其实很简单。您可以通过谷歌搜索或查看 here.
了解有关正则表达式(我在这里使用的工具)的更多信息
你要的图案是这样的:
(?<="):(?!")|(?<!"):(?=")|(?<!"):(?!")
这是由三个几乎相同的部分组成的;每件作品的描述都可以在上面的 link 中找到。然而,简而言之,他们会寻找恰好一侧有单个 "
的任何冒号,或者周围根本没有 "
的冒号。
你这样使用它:
string.split("(?<=\"):(?!\")|(?<!\"):(?=\")|(?<!\"):(?!\")");
注意 "
已经变成 \"
来逃避它。如果您不输入反斜杠,则会出现错误。
您可以使用正则表达式来精确匹配 ":"
而不是 :
使用您的字符串示例 abc":"ghi:123":"456
正则表达式 [a-z0-9]{3}":"[a-z0-9]{3}
将匹配 abc":"ghi
和 123":"456
需要根据:(冒号)拆分字符串,而不是双引号中的冒号,例如abc":"ghi:123":"456
,拆分结果应该是这样的,第一部分abc":"ghi
,第二部分应该是 123":"456
。 Java.
其实很简单。您可以通过谷歌搜索或查看 here.
了解有关正则表达式(我在这里使用的工具)的更多信息你要的图案是这样的:
(?<="):(?!")|(?<!"):(?=")|(?<!"):(?!")
这是由三个几乎相同的部分组成的;每件作品的描述都可以在上面的 link 中找到。然而,简而言之,他们会寻找恰好一侧有单个 "
的任何冒号,或者周围根本没有 "
的冒号。
你这样使用它:
string.split("(?<=\"):(?!\")|(?<!\"):(?=\")|(?<!\"):(?!\")");
注意 "
已经变成 \"
来逃避它。如果您不输入反斜杠,则会出现错误。
您可以使用正则表达式来精确匹配 ":"
而不是 :
使用您的字符串示例 abc":"ghi:123":"456
正则表达式 [a-z0-9]{3}":"[a-z0-9]{3}
将匹配 abc":"ghi
和 123":"456