我正在尝试构建一个正则表达式,以使我能够检查句子中是否出现了特定的单词组合。
文字示例
在您的问题正文中,首先展开您的摘要 放在标题中。说明您如何遇到问题 试图解决,以及任何阻碍您前进的困难 自己解决。您问题的第一段是 大多数读者会看到的第二件事,因此使其具有吸引力和 内容丰富。
现在,我正在尝试创建一种模式,该模式将告诉我本文中的任何句子是否包含任意顺序的单词组合。
Example combination:
summary, question
示例代码:
Regex regex = new Regex(@"(summary|question).*\w\.");
Match match = regex.Match("In the body of your question, start by expanding on the summary you put in the title. Explain how you encountered the problem you're trying to solve, and any difficulties that have prevented you from solving it yourself. The first paragraph in your question is the second thing most readers will see, so make it as engaging and informative as possible.");
if (match.Success)
{
Console.WriteLine("Success");
} else {
Console.WRiteLine("Fail");
}
输出:
Success
示例代码:
Regex regex = new Regex(@"(summary|question).*\w\.");
Match match = regex.Match("Explain how you encountered the problem you're trying to solve, and any difficulties that have prevented you from solving it yourself. The first paragraph in your question is the second thing most readers will see, so make it as engaging and informative as possible.");
if (match.Success)
{
Console.WriteLine("Success");
} else {
Console.WRiteLine("Fail");
}
输出:
Fail
我的最终目标是从用户(1..n)读取任意数量的单词,将它们构造为regex模式字符串,然后使用该模式检查任何文本。
例如(请忽略我仅使用视觉表示的错误模式)
Words: question, summary
pattern: (question|summary).*\w
Words: user, new, start
pattern: (user|new|start).*\w
我真的希望这有意义。我正在学习正则表达式(十年来没有使用过它)。
编辑1(重新打开说明):
我已经回顾了以前做过的一些答案,而且距离更近了。
我的新模式如下:
/^(?=.*Reference)(?=.*Cheatsheet)(?=.*Help).*[\..]/gmi
但是按照此处的示例https://regex101.com/r/m2HSVq/1,它不能完全正常工作。它在整个段落中寻找单词组合,而不是句子。
按照原文,我只想在句子内(以句号或文本结尾定界)返回匹配项。
我的后备选项是在句号处分割字符串,然后在找不到解决方案时进行单独匹配。