给出一个句子,
Scheme 这样一个奇怪的编程语言。
因此,包含is
和language
的任何句子都应返回true。我发现|
表示or
,但找不到任何符号表示and
。
谢谢,
答案 0 :(得分:3)
尝试以下正则表达式:
\bis\b.*\blanguage\b
如果两个单词完全以该顺序出现,则此匹配将匹配。 \ b(单词边界)表示单词是独立的。
答案 1 :(得分:3)
答案 2 :(得分:0)
有点难看,但它应该有用(无论'是'和'语言'是如何订购的):
(.*is.*language.*|.*language.*is.*)
答案 3 :(得分:0)
在c#中(我知道你没有问过c#,但它说明了如何更快地完成这项工作)......
string s = "Scheme is such a bizarre programming language.";
if ((s.Contains(" is") || s.Contains("is ")) &&
(s.Contains(" language") || s.Contains("language ")))
{
// found match if you got here
}
正在阅读代码的人可能很难解析正则表达式。简单的字符串匹配通常更快。
编辑:这不关心单词的顺序,只适用于简单的空格
答案 4 :(得分:0)
如果你不关心句子中单词的顺序,试试这个:
\bis\b.*\blanguage\b|\blanguage\b.*\bis\b