c# - 从字符串中获取符号数组

标签 c# regex

我有一个像这样的在 curl 内带有文本的字符串:

{field1}-{field}+{field3}Anthing{field4}  

我需要从中获取这样的数组:

['field1', 'field2', 'field3', 'field4']

有没有办法在 C# 中使用正则表达式来做到这一点?

最佳答案

您可以使用 Split 和 Linq:

string[] words = s.Split('+')
                  .Select(word => word.Substring(1, word.Length - 2))
                  .ToArray();

或者,您可以使用简单的正则表达式匹配 {...} 标记:

MatchCollection matches = Regex.Matches(s, @"\{(\w*)\}");
string[] words = matches.Cast<Match>()
                        .Select(m => m.Groups[1].Value)
                        .ToArray();

\w* 只会匹配字母数字字符,您可能希望将其替换为 [^}]*.*?

关于c# - 从字符串中获取符号数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6660922/

相关文章:

c# - 在 Net Core 中使用 Microsoft Graph Api 将用户添加为组成员

c# - System.Runtime.CompilerServices.AsyncTaskMethodBuilder::Start 有大量的自用时间

c# - 一些基本的 UML 问题

java - 使用正则表达式 java 查找标签 *ML 样式

c# - 如何测试 SQL Server 中的存储过程错误

c# - MultipleActiveResultSets 启用但不工作

java - 正则表达式字符集 [^\\w\\d\\s\\&] 不起作用

regex - 只获取正则表达式中的第一个匹配项

c# - 从右到左语言中的正则表达式模式匹配

php - 如何在 PHP preg_split 样式正则表达式中匹配一个或多个字母