正则表达式读取由引号和分号分隔的行

时间:2015-03-16 23:58:21

标签: java regex converter readfile

例如,我有一行代码:

"12345";"ISBN345";"8"

我想写一个正则表达式来提取12345,ISBN345,8。

如何编写此正则表达式?

更新:抱歉。

我没说清楚。有我的真实数据:

  

“276729”; “052165615X”; “3”

(我的数据有很多行,这一行只是一个例子)。我想将276729(用户ID)作为一个元素052165615X(图书编号)提取为一个,3(图书评级)为一个(这意味着我们需要与常规相匹配)表达式每行三次,所以每次读取一行时我都可以创建三个对象但不能一次提取276729 052165615X 3

3 个答案:

答案 0 :(得分:1)

选项1:将匹配并拆分为num,num,letters,num

"(\d+)";"(\d+)(.+)";"(\d+)"

选项2:将匹配并拆分为num,numletters,num

"(\d+)";"(\d+.+)";"(\d+)"

答案 1 :(得分:1)

"([^"]+)"(;"([^"]+)")*

[^"]+将匹配非空的非引号字符序列。如果字符串可以为空,则可以将+切换为*

这整个正则表达式将是一个非引号的引号序列,后跟由分号分隔的零个或多个引用序列。

答案 2 :(得分:1)

我认为这应该适合你。

"(\d+)";"(.*?)";"(\d+)"

假设第一个和第三个值始终是数字,而且只是数字。第二个值似乎可能是任何东西,所以.*?将允许一切都在那里,直到它遇到的第一个双引号。