如何使用正则表达式提取文本框输入中引号和单个单词之间的单词

本文关键字:单个单 之间 单词 正则表达式 何使用 提取 取文本 输入 | 更新日期: 2023-09-27 18:06:03

问题:

提取的单词

所以我有一个文本框,我在其中用引号输入标题的部分,比如"Lord of"和没有引号的单词,比如Dance。我想提取所有它们(删除引号并将它们拆分成某种列表(,这样我就可以构建SQL命令,下面显示的部分取决于一些单选按钮的选择。。

无论如何

到目前为止,我已经尝试过:

string pattern1 = "'"(.*?)'"";
MatchCollection col = Regex.Matches(textBox2.Text, @pattern1); //textbox2.Text is same as in picture

List<String> titles_to_query = new List<String> { };
            for (int i = 0; i < col.Count; i++)
            {
                titles_to_query .Add(col[i].Groups[1].Value.ToString()); 
            }

这将提取引号之间的所有标题

然而,我如何才能将Dance列入我的列表(列表中没有引号(?或者,如果有人输入-->"舞蹈之王"朋友

我想让《指环王》和《舞》在名单中,没有《老友记》,因为它缺少一个引号。。。

如何使用正则表达式提取文本框输入中引号和单个单词之间的单词

我认为这是完成任务的更好方法。我在工作中也做过类似的项目,它做得很好。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string input = "'"Legend of Tarzan'" '"Lord of Dance'"";
            string pattern = "'"(?'phase'[^'"]+)'"";
            MatchCollection matches = Regex.Matches(input, pattern);
            List<string> wheres = new List<string>();
            foreach (Match match in matches)
            {
                wheres.Add(string.Format("title % '{0}'", match.Groups["phase"].Value));
            }
            string whereClause = string.Format("WHERE {0}", string.Join(" OR ", wheres));
            string SQL = string.Format(
                " SELECT movie_id, ts_headline, title, ts_rank, rank" +
                " FROM movies" +
                " {0}" +
                " ORDER BY rank DESC",
                whereClause);
        }
    }
}