首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除字符串中的字符,条件是该字符用括号括起来。

删除字符串中的字符,条件是该字符用括号括起来。
EN

Stack Overflow用户
提问于 2013-05-18 22:53:52
回答 2查看 536关注 0票数 1

在此之前,我还没有学到regex (虽然我很乐意使用它,如果有人可以提供它)。

我有这样的条件:

"zum Abschluss kommen (nachdrücklich;abgeschlossen werden)“。

我想要做的是,每当字符;出现在方括号()中时,就将它替换为:。艾莉:我想让我的绳子结束

"zum Abschluss kommen (nachdrücklich: abgeschlossen werden)“。

给我带来麻烦的是,括号内可能有多少文本,所以我通常的(笨拙的)字符串处理方式对我没有帮助。

额外的例子:

“阿勒·曼恩甲板!”(西曼斯波;艾因·科曼多)

->

“阿勒·曼恩·安德!”(西曼斯佩:艾因·科曼多)

我不能仅仅替换(),因为完整的字符串包含我想要保留的;。例:

大甲板;甲板;

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-18 23:07:08

由于括号/括号不是嵌套或不平衡的限制,那么考虑使用积极后视的正则表达式。

这个后面的查看确保了比任何一个(都更接近于左),因此我们必须在一个方括号集中:

代码语言:javascript
复制
(?<=[(][^)]*);

在使用中:

代码语言:javascript
复制
Regex.Replace(input, @"(?<=[(][^)]*);", ":");

如果初始约束无效,则此正则表达式将“不可预测地”工作。

票数 2
EN

Stack Overflow用户

发布于 2013-05-18 23:04:24

也许是长了点气。

代码语言:javascript
复制
var a = "Your string";

// Get the bit within them
var bit = a.Substring(a.IndexOf("("), a.IndexOf(")")); 
// Fix the bit
var replaced = bit.Replace(";", ":");
// Put the fixed bit back in the original string
var result = a.Replace(bit, replaced); 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16629758

复制
相关文章

相似问题

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