请问正则高手,
Pattern pCells = Pattern.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");这句话表达的意思是什么哦 看不太懂哦 ( ⊙ o ⊙ )
Pattern pCells = Pattern.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");这句话表达的意思是什么哦 看不太懂哦 ( ⊙ o ⊙ )
调试欢乐多
其余的引号前都有\,是用来转义引号的,也就是说这个正则里面包含有引号,还不止一个
中括号是用来分组的,^表示行的开头,对字符表示不存在,*表示0个或多个
(\"[^\"]*(\"{2})*[^\"]*\")*
这部分表示这个正则匹配0个或多个(),()里的内容是这样
\"是引号,[^\"]*表示要不存在0个或多个",要有0个或多个(\"{2})*表示存在0个或多个有两个"的匹配
...
分析不出整体式干嘛的,正则没学好
等高手来
3不能是,
的字符串(1,2,3指位置)
"""", OK
"xx""xx"x, OK
""x""x, NO
, OK
我从文件中读取文本:洲际酒店(杭州),"1,388",538,100,含双早,杭州益乐路39号,"""Yile Road 39, Hangzhou, Zhejiang Province"""
解析结果是浙江米兰洲际酒店(杭州),, "1,388",, 538,, 100,, 含双早,, 杭州益乐路39号,, :"""Yile Road 39,, Hangzhou,而我想要的结果是:
浙江米兰洲际酒店(杭州),, "1,388",, 538,, 100,, 含双早,, 杭州益乐路39号,, """Yile Road 39,, Hangzhou,Zhejiang Province"""可是:Zhejiang Province""" 却丢了,该怎么解决呢 谢谢咯 O(∩_∩)O~
while (mCells.find()) {
str = mCells.group();
cells.add(str);
}
System.out.println(cells);
就这样运行之后 Zhejiang Province""" 没有哦 加个逗号还 """ 还是没有出来 而且 文本中有百万条记录呢 加个逗号的方法也不可取哦
Matcher m = Pattern
.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,")
.matcher(
"洲际酒店(杭州),\"1,388\",538,100,含双早,杭州益乐路39号,\"\"\"Yile Road 39, Hangzhou, Zhejiang Province\"\"\",");
while (m.find())
System.out.println(m.group());
//result
洲际酒店(杭州),
"1,388",
538,
100,
含双早,
杭州益乐路39号,
"""Yile Road 39, Hangzhou, Zhejiang Province""",
洲际酒店(杭州),\"1,388\",538,100,含双早,杭州益乐路39号,\"\"\"Yile Road 39, Hangzhou, Zhejiang Province\"\"\","和洲际酒店(杭州),"1,388",538,100,含双早,杭州益乐路39号,"""Yile Road 39, Hangzhou, Zhejiang Province""","在同时做java的String的时候还有什么不同吗 下面一句是直接从文本中读取得到 但是 执行结果却不同哦