首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Regex.Replace替换字符串中的子字符串

Regex.Replace替换字符串中的子字符串
EN

Stack Overflow用户
提问于 2013-12-30 12:49:41
回答 2查看 74关注 0票数 0

我试图在以下字符串中替换ValueBinding="metasys-value:111,813?“

代码语言:javascript
复制
Canvas.Top="494" Width="75" Height="75" jcge:RubberBand.ID="ce4f76db-9efc-4b5d-b48b-b62f727d53ef"  ValueBinding="meta-value:111,813?analogCommand=37&enumCommand=37" AlarmBinding="meta-item:Alarm%20-%20Present%20Value" TrendBinding="meta-item:Trend%20-%20Present%20Value"  SecondaryValueBinding="meta-value:222,813?analogCommand=10&enumCommand=44" SecondaryTrendBinding="meta-item:Trend%20-%20Present%20Value" SensorType="Bulb"

由新字符串使用

代码语言:javascript
复制
patch = Regex.Replace(patch, "ValueBinding=" + "\".*,813", "ValueBinding=" + "\"" + primaryObjectReference + ",813");

但它将字符串替换为第二,813次出现。如何用新值替换ValueBinding="metasys-value:111,813?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-30 13:00:31

使用[^\"]*.*?代替.*,并将\b添加到正则表达式的开头。

\b匹配一个单词边界,例如。ValueBinding前面的空间。

[^\"]*将匹配除"以外的所有字符,.*?将匹配所有非贪婪的字符。

就你而言:

代码语言:javascript
复制
patch = Regex.Replace(patch, "\\bValueBinding=" + "\".*?,813", "ValueBinding=" + "\"" + primaryObjectReference + ",813");
票数 0
EN

Stack Overflow用户

发布于 2013-12-30 13:02:47

这听起来很符合逻辑,因为在表达式中有".,813",这也将是111,813和222,813。如果我对它有很好的理解,您必须将".,813“替换为".*111,813\?”。

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

https://stackoverflow.com/questions/20839928

复制
相关文章

相似问题

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