正则高手进 请问正则高手,Pattern pCells = Pattern.compile("(\"[^\"]*(\"{2})*[^\"]*\")*[^,]*,");这句话表达的意思是什么哦 看不太懂哦 ( ⊙ o ⊙ ) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 第一个引号和最后一个用来表示这个正则表达式的,因为compile的参数是String的其余的引号前都有\,是用来转义引号的,也就是说这个正则里面包含有引号,还不止一个中括号是用来分组的,^表示行的开头,对字符表示不存在,*表示0个或多个(\"[^\"]*(\"{2})*[^\"]*\")*这部分表示这个正则匹配0个或多个(),()里的内容是这样\"是引号,[^\"]*表示要不存在0个或多个",要有0个或多个(\"{2})*表示存在0个或多个有两个"的匹配...分析不出整体式干嘛的,正则没学好等高手来 Pattern pCells = Pattern.compile("\\s{2}\"{2}\\s{2}"); "1""2"3,1和2不能是"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~ Zhejiang Province后少个逗号,所以匹配不到 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的时候还有什么不同吗 下面一句是直接从文本中读取得到 但是 执行结果却不同哦 嗯,谢谢咯,终于找到原因咯 O(∩_∩)OO(∩_∩)O~~ 新人没分!!急!!!程序执行问题没弄明白,请高手指点!! java如何把值写到pb做的界面中 请问有什么比较好的java入门书,请推荐一下 sos 四舍五入-8.5后应该等于几? 如何转换控制台和GUI的函数呢?.. 请高手们帮忙看看怎么回事 初学java,不知哪有可视化组件下载?(重分酬谢,立即给分) 关于汉字转换的问题?急! Java 用ImageIcon或者其他的从本地读取一张图片 然后在这张图片上用画笔Graphics根据坐标点来画原点 急急急急急!!!!!关于导入第三方包 c的代码转成java的
其余的引号前都有\,是用来转义引号的,也就是说这个正则里面包含有引号,还不止一个
中括号是用来分组的,^表示行的开头,对字符表示不存在,*表示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的时候还有什么不同吗 下面一句是直接从文本中读取得到 但是 执行结果却不同哦