-3

我有一个字符串数组,如Name, Groups[0].Id, Types[11].Name.

我想过滤带有方括号的字符串并将它们分成两部分。例如,Groups[0].Id进入 GroupsId

如何使用正则表达式找到带有方括号的字符串?

4

3 回答 3

4

你可以试试这个

Regex.Split(input,@"\[.*?\][.]");
于 2013-07-31T11:51:01.537 回答
2

仅用于拆分单个字符串,例如

string value = "Groups[0].Id";

利用

string[] parts = Regex.Split(value, "\[\d+\]\.");

说明:您必须用反斜杠转义方括号和点字符(它们在正则表达式中具有特殊含义),并且 \d+ 将只接受一个数字字符串('0'..'9'),其中至少一个数字。

链接:

于 2013-07-31T11:54:39.320 回答
1

我不确定您是要拆分问题标题所暗示的字符串,还是要过滤似乎是您最后要问的列表。您可以使用正则表达式的括号和句点来拆分数组的每个元素。这个正则表达式不假设索引是单独的数字——例如,它将允许一个由字符串作为键的数组。

Regex.Split(a, @"\[[^\]]+\]\.");

雷伊

您可以使用 LINQ 在一行中过滤数组。

string[] ary = new string[3] {"Name", "Groups[0].Id", "Types[11].Name" };

ary = ary.Where(a => Regex.Match(a, @"\[[^\]]+\]\.").Success).ToArray();

foreach (string str in ary)
{
     Console.WriteLine(str);
}
于 2013-07-31T11:54:12.067 回答