java正则表达式解析多行数据
我有一个文件中的以下数据,我想看看是否可以在这里进行正则表达式解析
Name (First Name) City Zip John (retired) 10007 Mark Baltimore 21268 .... .... Avg Salary 70000 100%
它不是一个大文件,文件中的所有数据都可以在字符串对象中使用新行字符(\n)(String data=“文件中的数据”)
- 我试图得到姓名,城市,邮政编码,然后工资,百分比的细节
- ()中的数据被视为名称字段的一部分李>
- For Name字段空间被视为有效,其他字段没有空间李>
- “平均工资”仅在文件末尾可用
通过Java中的正则表达式解析实现这一点容易吗
# 1 楼答案
如果文本文件是按空格对齐的,则可以(也可能应该)根据字符数提取字段。因此,您将每行中的第一个
n
字符作为名字,下一个m
字符作为城市,依此类推这是一个使用上述方法提取的代码,通过自动计算字段的字段长度,假设我们知道标题
使用正则表达式是可能的,但会更复杂。而且regex无论如何也无法区分人名和城市名:
考虑这种情况:
如果您不知道第一个字段的长度最多为20个字符,您如何知道名称是
John Long-name Joe
而不是John Long-name Joe New
?(注意John Long-name Joe
的长度是19个字符,在它和New York
中的New
之间留有一个空格)当然,如果您的字段由其他字符分隔(如制表符
\t
),您可以基于此拆分每一行。很容易修改上面的代码以适应=)由于我上面提出的解决方案更简单,我想您可能想试试它=)