使用 Java 解析包含转义字符的字符串

2024-02-02


我想知道是否有人可以帮助我弄清楚如何解析具有以下格式的字符串:

;field1-field2-fieldN;field1-field2-fieldN;

每条记录均以“;”分隔记录中的每个字段均以“-”分隔。复杂的是各个字段可能包含转义分隔符,例如“\;”或者 ”-”。这导致我下面的简单解析代码失败。所以我想做的是提出与分隔符匹配但不匹配转义分隔符的正则表达式。 我的正则表达式知识不是那么好,但我期望必须有一种方法将“([^\;])”和“([;])”组合起来才能得到我所需要的。

public static List<ParsedRecord> parse(String data) {
    List<ParsedRecord> parsedRecords = new List<ParsedRecord>();
    String[] records = data.split(";");
    for (String record : records) {
        String[] fields = data.split("-");
        parsedRecords.add(new parsedRecord(fields));
    }
    return parsedRecords;
}

首先十分感谢。


您也许可以像这样细化与 split 一起使用的正则表达式:

split("[^\\];")

分裂任何“;”但如果前面有一个“\”则不会。破折号也是如此:

split("[^\\]-")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Java 解析包含转义字符的字符串 的相关文章

随机推荐

  • k3d 尝试拉取 Docker 镜像而不是使用本地镜像

    只需在本地机器 Linux Mint 20 2 上研究K8S的核心即可 使用以下命令在本地创建一个节点集群 k3d集群创建mycluster 现在我想在容器中运行 spring boot 应用程序 我构建本地图像 库 0 1 0 这是摘自D
  • 如何摆脱 jQuery 数据表插件的分页?

    我怎样才能删除分页 and showjQuery 的特点数据表 http datatables net 我只想要它的搜索和排序功能 并想摆脱其他功能 有什么办法吗 如果你不使用 jQuery UI 主题 你可以这样做 document re
  • 如何删除Android Room数据库的文件?

    我已经实现了一个房间数据库 它是从资源文件中分发的SQLite资产助手 https github com jgilfelt android sqlite asset helper第一次启动应用程序时 数据库包含游戏状态数据 因此如果玩家想要
  • 如何生成字母表数组?

    在 Ruby 中我可以做 a z to a to get a b c d z JavaScript 是否提供类似的构造 我个人认为最好的是 alphabet abcdefghijklmnopqrstuvwxyz split 简洁 有效 易读
  • 在 Java 中转换字符

    我正在学习Java 我发现表达式通常必须转换为某种类型才能正确执行 例如 在算术计算期间 字节被提升为整数 因此以下表达式将引发错误 byte b 10 int i i b b ok assigning an integer evaluat
  • 核心文本 - 从 NSRange 获取像素坐标

    我怎样才能得到一个CGRect从一个NSRange对于使用 Core Text 渲染的文本 我正在使用核心文本NSAttributedString 这是绝对的痛苦 但可以做到 您需要使用以下命令获取框架中的所有线条CTFrameGetLin
  • 我正在使用 Redux。我应该管理 Redux 存储中的受控输入状态还是在组件级别使用 setState?

    我一直在试图找出管理我的反应表单的最佳方法 我尝试使用 onChange 来触发操作并使用表单数据更新我的 redux 存储 我还尝试创建本地状态 当提交表单时 我触发并执行操作并更新 redux 存储 我应该如何管理我的受控输入状态 我喜
  • NodeJS 套接字有时可以工作

    因此 我有一个节点服务器 运行expressjs io 使用socket io 并且我正在构建一个跟踪数据库中坐标的网格地图 只是 我遇到了一个特殊的问题 因为我的套接字只监听有时 起初没有错误消息 只是偶然我让页面运行并收到此错误 Unc
  • 内核和用户模式之间共享内存。如何共享句柄?

    我正在尝试在用户进程和内核之间使用共享内存 选项一 让内核创建部分并让用户模式应用程序通过名称 Global my mem 打开内存 它仅在只读模式下工作 当我尝试使用 FILE MAP WRITE 打开部分时 它会拒绝访问 5 不确定如何
  • EF 向后兼容数据库迁移

    我试图弄清楚如何使用 EF 代码优先和迁移来实现以下部署场景 我的想法是 我想通过向后兼容的架构更改来升级数据库 例如 添加一列 并测试一切是否仍然有效 它受到绿色 蓝色部署的启发 但并不完全遵循该模式 这背后的原因是遵循这个过程 升级数据
  • 为什么 Chrome 中的页面上没有加载所有视频?

    http graysonearle com bluemen http graysonearle com bluemen 使用 webkit 浏览器单击它 加载时应该会出现 4x4 的视频网格 但 Chrome 上往往只会加载 1 3 个视频
  • 如何查询android设备硬件信息

    我如何获取 Android 设备硬件信息 如 CPU 架构 速度 霓虹灯 GPU 名称 制造商 RAM 大小 我希望有一种方法可以使用 ndk 本地执行此操作 但如果只能通过 java 代码实现 那么如何执行此操作 您需要使用Build h
  • 尝试使用嵌套属性制作表单

    我是 Rails 的初学者 所以我对嵌套属性很困惑 以下是我正在寻找的内容的概述 租车可以创造汽车 完成 客户可以预订汽车 租赁汽车在预订的同时创建客户 我正在尝试制作一份预订表格 其中包含客户和预订信息 因为租赁汽车将填写所有信息 这就是
  • 如何知道 nuget 包是否可以在 .NET Core 上运行?

    我希望网站或控制台中存在某种过滤器 不幸的是 现在这并不容易 有一个NuGet Github 上开放的问题 https github com NuGet NuGetGallery issues 3098关于向网站添加过滤器 目前 判断包是否
  • RichTextBox 和 Tab 键

    我创建了一个 richTextBox 我注意到当我按 Tab 键时它没有执行任何操作 它应该做一些空间 但它没有 我怎样才能访问它 默认情况下 按 Tab 键会将焦点移至下一个控件 将 RichTextBox 的 AcceptsTab 属性
  • MarkLogic 9 cts.parse 无法正确解析查询

    我正在使用 MarkLogic 9 开发基于 Web 的搜索应用程序 我有一个查询构建界面 允许用户将字符串输入到与数据库中文档的特定 JSON 属性相对应的文本框中 这个想法是 用户可以完全按照 cts parse 我使用服务器端 jav
  • 最外面的 CascadingValue 在页面刷新或直接链接时丢失

    我想在我的 Blazor 应用程序中共享几个组件 这些恰好是 SyncFusion 组件 一个是 SfToast 一个是 SfDialog 我认为一个简单的方法是将组件放在 MainLayout razor 上 然后使用
  • 如何“检查”函数是否确实给出随机结果?

    如何确定一个函数确实是随机的或者尽可能接近这个概念 另外 随机和伪随机之间有什么区别 最后 可以使用哪些算法 来源来生成随机数 P S 也问这个是因为 MySQL 语句使用ORDER BY RAND LIMIT 1没有给出令人信服的结果 随
  • 抽象类的可访问性不一致

    我有一个内部抽象类InternalClassBase和两个 也是内部 类InternalClass1 and InternalClass2 继承自InternalClassBase 我还有一个公共抽象类PublicClassBase和两个
  • 使用 Java 解析包含转义字符的字符串

    我想知道是否有人可以帮助我弄清楚如何解析具有以下格式的字符串 field1 field2 fieldN field1 field2 fieldN 每条记录均以 分隔记录中的每个字段均以 分隔 复杂的是各个字段可能包含转义分隔符 例如 或者