首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C#中拆分字符串以提取括号中的值并保留它们

在C#中拆分字符串以提取括号中的值并保留它们
EN

Stack Overflow用户
提问于 2019-05-17 13:22:14
回答 3查看 535关注 0票数 0

我需要拆分一个字符串,使用Regex提取字符串数组中的括号和数据,并保留括号。

提取自

代码语言:javascript
运行
复制
1-2-3(0)(1)

代码语言:javascript
运行
复制
(0)
(1)

我建造了这个Regex,但不能让它工作。

代码语言:javascript
运行
复制
String phrase= "123(0)(1)"
String[] results = Regex.Split(phrase,"\\r+(?:\\(.*\\))");
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-05-17 13:33:25

您可以使用Regex.Matches方法代替

代码语言:javascript
运行
复制
        string phrase = "123(0)(1)";
        string[] results = Regex.Matches(phrase, @"\(.*?\)").Cast<Match>().Select(m => m.Value).ToArray();
票数 1
EN

Stack Overflow用户

发布于 2019-05-17 13:25:05

如果括号中的这两个方法总是在一起,您可以尝试使用子字符串方法。

代码语言:javascript
运行
复制
phrase = phrase.Substring(phrase.FirstIndexOf("("));

可能得在后面放-1。

票数 0
EN

Stack Overflow用户

发布于 2019-05-17 13:31:19

可以使用(\(\d\))模式提取括号中的数字。

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

例如。

代码语言:javascript
运行
复制
var input = "1-2-3(0)(1)";
Regex pattern = new Regex(@"(\(\d\))");

var matches = pattern.Matches(input);

foreach (Match match in matches)
{
  foreach (Capture capture in match.Captures)
  {
      Console.WriteLine(capture.Value);
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56187330

复制
相关文章

相似问题

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