如何使用正则表达式提取文本框输入中引号和单个单词之间的单词
本文关键字:单个单 之间 单词 正则表达式 何使用 提取 取文本 输入 | 更新日期: 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);
}
}
}