【发布时间】:2017-01-25 22:24:16
【问题描述】:
我正在尝试解析一个文本文件,其中包含一系列以数字开头的“记录”(后跟 NBSP 和 1-2 个空格),包含数百个字母和数字字符,跨越换行符,但是不要以任何可预测的事情结束。识别记录结束的唯一方法是点击起始标记的下一个实例,可以通过以下正则表达式匹配:
\\d{1,4}\\u00A0\\s+
内容是手动输入的,有不可预知的换行符,所以我把它们删掉了。这给我留下了一个字符串。
1 blah blah blah 2 blah blah blah ... 875 blah blah blah
由于我知道记录已结束的唯一方法是点击下一个记录 ID,因此我尝试仅拆分上面的正则表达式。这会将文件正确拆分为记录,但它省略了我需要捕获的记录 ID。我检查了 Java 文档,但没有任何关于捕获被分割的动态值的内容。我尝试将记录号设为捕获组,但该数据未保留在结果数组中。
这个问题(Java String Regex split and capture splitted portion)看起来很相似,但是提问者知道每个文本片段的结束位置;而我只知道每个开始的地方。
那么是否有另一种拆分方式,但通过拆分正则表达式保留文本匹配?
谢谢
【问题讨论】: