我怎么可以这样写:插入字符串中的正则表达式搜索C#
List<string> Words= new List<string>();
Regex re = new Regex(@"\b" + Words[n] + "\b");
我究竟问题是我如何使用正则表达式搜索从列表或字符串元素?
我怎么可以这样写:插入字符串中的正则表达式搜索C#
List<string> Words= new List<string>();
Regex re = new Regex(@"\b" + Words[n] + "\b");
我究竟问题是我如何使用正则表达式搜索从列表或字符串元素?
可能的解决方案:
string testString = "cat and dog";
string[] Words = { "cat", "dog" };
foreach(string word in Words)
{
bool contains = Regex.IsMatch(testString, "\\b" + word + "\\b");
}
我会删除局部变量'Regex re;'并调用静态帮助器方法:'bool contains = Regex.IsMatch(testString,String.Format(“\ b {0} \ b”,word))' –
它应该是''\\ b“+ word +”\\ b“',你必须在正则表达式中使用双反斜杠,因为反斜杠是C#中的特殊字符 –
您可以使用所有的话在一个正则表达式:
var words= new List<string>();
var regex = new Regex(string.Format(@"\b(?:{0})\b", string.Join("|", words)), RegexOptions.Compiled);
这会给你的字符串正则表达式模式的列表:
List<string> words= new List<string>() { "cat", "dog" };
List<string> regexPatterns = words.Select(str => "\\b" + str + "\\b").ToList();
或者,如果你想要一个正则表达式对象列表:
List<Regex> regexObjects = words.Select(str => new Regex("\\b" + str + "\\b")).ToList();
你的意思是测试表达式中的每个条目'“\ b”单词“\ b”' – Cjen1
我的意思是测试列表中的所有项目\ b \ b – rfk12
那么你想要什么:声明'“\ b”+单词“\ b”'会匹配任何重复的单词。那么你在检查什么?该代码将用于检查单词是否包含在另一个字符串中? – Cjen1