例如,我有一行代码:
"12345";"ISBN345";"8"
我想写一个正则表达式来提取12345,ISBN345,8。
如何编写此正则表达式?
更新:抱歉。
我没说清楚。有我的真实数据:
“276729”; “052165615X”; “3”
(我的数据有很多行,这一行只是一个例子)。我想将276729
(用户ID)作为一个元素052165615X
(图书编号)提取为一个,3
(图书评级)为一个(这意味着我们需要与常规相匹配)表达式每行三次,所以每次读取一行时我都可以创建三个对象但不能一次提取276729 052165615X 3
答案 0 :(得分:1)
选项1:将匹配并拆分为num,num,letters,num
"(\d+)";"(\d+)(.+)";"(\d+)"
选项2:将匹配并拆分为num,numletters,num
"(\d+)";"(\d+.+)";"(\d+)"
答案 1 :(得分:1)
"([^"]+)"(;"([^"]+)")*
[^"]+
将匹配非空的非引号字符序列。如果字符串可以为空,则可以将+
切换为*
。
这整个正则表达式将是一个非引号的引号序列,后跟由分号分隔的零个或多个引用序列。
答案 2 :(得分:1)
我认为这应该适合你。
"(\d+)";"(.*?)";"(\d+)"
假设第一个和第三个值始终是数字,而且只是数字。第二个值似乎可能是任何东西,所以.*?
将允许一切都在那里,直到它遇到的第一个双引号。