首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用REGEX C#查找字符串中的属性

用REGEX C#查找字符串中的属性
EN

Stack Overflow用户
提问于 2016-03-24 13:32:06
回答 4查看 92关注 0票数 0

我有以下输入:

波托斯: 450;林哈斯: 446;X米尼莫: 554625;Y mínimo: 9170625;Tamanho da célula: 125米;Projecao:"SAD69 UTM zone 23S";虚拟: 99999;X=UTM Este SAD69 Zona 23 s;Y=UTM Norte SAD69 Zona 23 s;gD_FOURIER_0=Gravidade垂直傅里叶,sem corre o de terreno de terreno;gD_FOURIER_2p1=Gravidade垂直傅里叶,para o de terreno com densidade 2.1 g cm;GDD_FOURIER_0=Gradiente GDD Fourier,corre o de terreno de terreno。GDD_FOURIER_2p1=Gradiente GDD Fourier,对corre o de terreno com densidade 2.1g cm;gD_FOURIER_2p1_Conformed=Gravidade垂直傅里叶,对corre o de terreno com densidade 2.1g cm,corformado ao modelo DNSC08;

我想找到所有属性{any}={any};。我尝试使用以下代码:

代码语言:javascript
复制
string pattern = @"(.*)=(.*);";
MatchCollection mc = Regex.Matches(input, pattern);

但没有成功..。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-24 13:36:36

嗯,你需要比{any}更精确。

在等号之前,您可能想要的是“除空格之外的任何东西”。这是regex中的\S+

在等号之后,你可能会说“除了分号以外的任何东西”。那是[^;]+

代码语言:javascript
复制
string pattern = @"(\S+)=([^;]+);";

测试它在regex101.com上直播

票数 1
EN

Stack Overflow用户

发布于 2016-03-24 13:37:51

当然,只要用:

代码语言:javascript
复制
(?P<key>\w+)=(?P<value>[^;]+)

regex101.com上的演示

票数 1
EN

Stack Overflow用户

发布于 2016-03-24 13:35:22

你太急切了:

代码语言:javascript
复制
(.*?)=(.*?);

好点了吗?

编辑->我忘记了';‘

Edit2:

代码语言:javascript
复制
(.*?)(:|=)(.*?);/g

https://regex101.com/r/nY6lS0/1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36201424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档