如何用正则表达式解析一些单词之后的文本?

时间:2015-09-20 12:13:37

标签: regex parsing numbers

我需要在&#34; vertex&#34;之后提取所有数字,但我的正则表达式(?<=vertex)\s((-?\d*\.?\d+)\s*)*会返回最后一个数字。

文字模板:

vertex
144.64329 -65.95227 -40.5391
244.25595 -77.64196 -51.07746
144.64738 23.13064 -40.53168
244.26259 67.13464 -51.0654
144.64968 -65.94874 36.17572
244.26407 -77.63749 46.41944

如何在&#34; vertex&#34;?

之后获取所有数字

1 个答案:

答案 0 :(得分:0)

如果您的正则表达式支持select process_id from events group by process_id having count(distinct item_id) -- all items = count(distinct case when event_type = 'A' then item_id end) -- only items with event 'A' 元字符,请尝试使用:

\G

DEMO

  • (?<=vertex\s)-?\d*\.?\d+|(?<=\G\s)-?\d*\.?\d+ - 对于漩涡字和空格的正面观察,后跟数字,
  • (?<=vertex\s)-?\d*\.?\d+ - 或
  • | - 前一场比赛的正面观察,然后是数字

另一个approuch是匹配所有数字:

(?<=\G\s)-?\d*\.?\d+*

DEMO

然后将匹配的字符串与(?<=vertex)(?:\s?-?\d*\.?\d+)+

分开