【发布时间】:2019-07-25 14:40:04
【问题描述】:
我尝试创建一个模式来从一行中提取一些值,但没有成功。我可以请你帮忙吗?
我想从这样的一行中提取值(只是一个简单的例子):
502,42 421,421.421 421421,421.55 551
[0-9,.]+
问题是我想将每个值分配给不同的变量。
我该怎么做?
【问题讨论】:
-
^(?:\d+[,. ]){N-1}(\d+)? (其中N是元素的位置)见:regex101.com/r/I4mEzR/1 -
尊敬的 Ahmed, 感谢您在这方面的回答。我已经检查了您的解决方案,但目标是“拆分”每个 Space \s 上的值,然后我将有 4 个不同的值,并且使用 {N of element} - 我可以将值一一分配给变量改变N. 有可能吗?谢谢,阿吉安!
-
您使用的是 .NET 吗?如果是这样,为什么不使用
Split()方法而不是正则表达式?无论如何,使用正则表达式,您可以执行^(?:[0-9,.]+\s){N-1}([0-9,.]+)之类的操作,您的第 N 个元素将位于第一个捕获组中。请参阅:regex101.com/r/WVkcrH/1 或者,如果您的正则表达式支持\K,您可以使用^(?:[0-9,.]+\s){2}\K[0-9,.]+。