在这种情况下,使用

java.util.regex.Matcher更容易使用find()而不是任何类型的拆分.

也就是说,不必定义令牌之间的分隔符的模式,您可以为令牌本身定义模式.

以下是一个例子:

String text = "1 2 \"333 4\" 55 6 \"77\" 8 999";

// 1 2 "333 4" 55 6 "77" 8 999

String regex = "\"([^\"]*)\"|(\\S+)";

Matcher m = Pattern.compile(regex).matcher(text);

while (m.find()) {

if (m.group(1) != null) {

System.out.println("Quoted [" + m.group(1) + "]");

} else {

System.out.println("Plain [" + m.group(2) + "]");

}

}

Plain [1]

Plain [2]

Quoted [333 4]

Plain [55]

Plain [6]

Quoted [77]

Plain [8]

Plain [999]

模式本质上是:

"([^"]*)"|(\S+)

\_____/ \___/

1 2

有两个替代:

>第一个交替匹配开头双引号,除了双引号(在组1中捕获)之外的任何序列,然后关闭双引号

>第二个替换匹配组2中捕获的任何非空白字符序列

交替的顺序在这种模式中是重要的

请注意,这不会在引用的段中处理转义的双引号.如果您需要这样做,那么该模式变得更加复杂,但是Matcher解决方案仍然可行.

参考

也可以看看

附录

相关问题

java忽略引号中的分隔符_java – 令牌化但忽略引号内的分隔符相关推荐

  1. java清空inputstream中的流_Java 流处理

    数据流 1.I/O流概述 大部分程序都需要输入/输出处理,比如从键盘读取数据.向屏幕中输出数据.从文件中读或者向文件中写数据.在一个网络连接上进行读写操作等.在Java中,把这些不同类型的输入.输出源 ...

  2. java删除数组中指定元素_java学习中如何删除数组中的指定元素

    java的api中,并没有提供删除数组中元素的方法.虽然数组是一个对象,不过并没有提供add()remove()或查找元素的方法.这就是为什么类似ArrayList和HashSet受欢迎的原因. 不过 ...

  3. java 去掉字符串中的换行_java删除字符串中的空格、回车、换行符、制表符程序...

    本程序来详细的介绍关于java删除字符串中的空格.回车.换行符.制表符程序实例,有需要学习的朋友可参考参考. java换行符 那是因为默认的情况下,界面上的换行时用的"n",这是L ...

  4. magento 模块化开发_Magento中的PayPal信用卡令牌化

    magento 模块化开发 As a robust eCommerce platform, Magento has long supported integration with a variety ...

  5. JAVA设置流中当前位置_java文件流的问题!急

    朋友你好,用使用 javadoc 标记可以做到.具体说明如下:: javadoc 标记是插入文档注释中的特殊标记,它们用于标识代码中的特殊引用.javadoc 标记由"@"及其后所 ...

  6. java判断栈中元素数目_Java数据结构与算法-栈和队列

    (摘录加总结)------ 栈和队列不属于基础的数据结构,它们都属于线性表. 一.栈 对于栈存储操作元素只能在栈结构的一端进行元素的插入和删除,是一种性质上的线性表结构.按照"先进后出&qu ...

  7. java取list中最大数值_Java后台通过Collections获取list集合中最大数,最小数代码

    我就废话不多说了,大家还是直接看代码吧~ package com.jalor; import java.util.ArrayList; import java.util.Collections; im ...

  8. java提取word中的文字_Java 提取Word中的文本和图片

    本文将介绍通过Java来提取或读取Word文档中文本和图片的方法.这里提取文本和图片包括同时提取文档正文当中以及页眉.页脚中的的文本和图片. 使用工具:Free Spire.Doc for Java ...

  9. java在容器中导入图片_Java程序员必学技术:@Import直接导入类,在容器@Configuration、@Component中是怎么直接导入类注册到容器的?...

    Java程序员必学技术:@Import直接导入类,在容器@Configuration.@Component中是怎么直接导入类注册到容器的? Spring IoC 容器是一个管理 Bean 的容器,在 ...

最新文章

  1. 切换apache的prefork和worker模式
  2. jQuery笔记总结篇
  3. view 注册服务器,view服务器ip地址
  4. Sublime text无法自动通过package control安装插件的研究
  5. Dynamics CRM 2015 站点地图公告配置实体显示名称的变更
  6. 后勤管理系统_高校后勤设备报修管理系统_易报修系统高校后勤管理系统_免费高校后勤管理系统...
  7. centos mysql php tomcat_CentOS 6.x使用yum快速安装Apache+PHP+Tomcat(JSP)+MySQL
  8. 重装 Windows 7 系统后电脑出现乱码怎么办
  9. Android AsyncTasks并行执行
  10. Atitit 遗留系统的改造 微创技术 attilax总结 目录 1. 微创是高科技带来的革命! 1 1.1. 早期微创 1 1.2. 微创五大优点 1 2. 常用辅助设备与模块 2 2.1. 清晰
  11. 你写的api接口代码真是_百度AI接口之JavaAPI方式调用示例代码[持续完善中]
  12. Python学习之——列表、字典、实验低配版非诚勿扰
  13. 索引格式的图片在PS软件中无法操作,怎么解决?
  14. 虚拟机怎么装服务器系统教程视频,云服务器装虚拟机教程视频
  15. java 红外光谱数据库_【分享】免费的20个谱图数据库 - 晶体 - 小木虫 - 学术 科研 互动社区...
  16. 形态学操作之腐蚀、膨胀、开运算、闭运算、梯度运算、顶帽和黑帽
  17. 启动车子温车_冷车和热车难打火可以不修,但温车不打火必须得修
  18. 将标签转为onehot编码
  19. 折腾一下,Linux Mint 19 下工作
  20. shell -- expr命令

热门文章

  1. FastJson的常用操作
  2. Linux内核Socket参数调优
  3. Calendar的那些神坑
  4. 关于Unity中NGUI的Pivot和锚点
  5. 008. 限制上传文件的大小
  6. 【域控管理】父域的搭建
  7. SQL之用户自定义函数
  8. C# 导出 Excel 数字列出现‘0’的解决办法
  9. 轻量社交APP系统ThinkSNS 简 权威发布 限时惠购
  10. 使用 python 操作 redis