[英]How to get string value in brackets with regex
我已经看过另一页询问相同的问题,但是该页上给出的答案似乎对我不起作用。
我有一个文本文件,在方括号中包含很多单词,并且我正在尝试删除方括号。 我已经打开文本文件,并使用StreamReader类将其转换为字符串。
当我尝试显示字符串时,没有显示。
有人可以告诉我我在做什么错吗? 这是代码:
List<string> words = new List<string>();
StreamReader sr = new StreamReader(File.OpenRead(ofd.FileName));
string wordlist = sr.ReadToEnd();
textEntry.Text = wordlist;
MatchCollection matches = Regex.Matches(wordlist, "[(.+?)]", RegexOptions.Singleline);
foreach (Match match in matches)
{
string add = match.Groups[1].Value;
words.Add(add);
}
foreach (string word in words)
{
MessageBox.Show(word);
}
任何帮助表示赞赏,谢谢。
您必须转义括号,因为它们是正则表达式中保留的关键字。 您还会在下面的代码中看到\\
被转义了,因为\\
在C#中具有特殊含义,因此请转义转义符:
Regex.Matches(wordlist, "\\[(.+?)\\]", RegexOptions.Singleline);
或者,使用逐字运算符:
Regex.Matches(wordlist, @"\[(.+?)\]", RegexOptions.Singleline);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.