繁体   English   中英

如何使用正则表达式获取括号中的字符串值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM