【发布时间】:2019-02-15 04:20:33
【问题描述】:
我有一个输入字段,用户可以在其中搜索一个单词或一个句子。
让我们在一段文字中说:
段落是论文的组成部分。许多学生根据长度来定义段落:一个段落是一组至少五个句子,一个段落有半页长等等。但实际上,句子之间思想的统一和连贯性是构成段落的原因。段落被定义为“一组句子或构成一个单元的单个句子”(Lunsford 和 Connors 116)。长度和外观并不能决定论文中的一个部分是否是一个段落。例如,在某些写作风格中,尤其是新闻风格,一个段落可能只有一个句子长。最终,段落是支持一个主要思想的一个句子或一组句子。在本讲义中,我们将其称为“控制思想”,因为它控制了段落其余部分发生的事情。
作为用户,我输入students define paragraph。我希望正则表达式找到 students define paragraph 作为句子和 students、define、paragraph。
预期
段落是论文的组成部分。许多学生根据长度来定义段落:一个段落是一组至少五个句子,一个段落是半页长,等等. 然而,实际上,句子之间思想的统一性和连贯性构成了段落。 段落被定义为“一组句子或构成一个单元的单个句子”(Lunsford and Connors 116)。长度和外观并不决定论文中的某个部分是否为段落。例如,在某些写作风格中,尤其是新闻风格,段落可能只有一个句子。归根结底,段落是支持一个主要思想的一个句子或一组句子。在本讲义中,我们将其称为“控制思想”,因为它控制段落其余部分发生的事情。
到目前为止,我已经尝试使用 /students(.*?)define?paragraph/gmi 并将它们放在单独的括号中。我被告知要做不止一个正则表达式搜索,但这会导致运行时间很长。想知道是否有办法定义正则表达式搜索。
也试过/students(?define)(.*?)paragraph/gmi,但如果没有端点来分组匹配,这不会返回个人。
【问题讨论】:
-
你能帮我理解这个问题吗?如果您没有对它们进行排名,仅搜索“学生”或“定义”或“段落”将返回所有包含一个、两个或三者任意组合的句子,包括它们串联出现时。或者您不想要一个句子,例如,“学生”出现在“定义”之后?即如果两者都存在,“学生”应该紧跟在“定义”之前?
-
当您的查询包含
paragraphs时,您希望如何匹配paragraph?一个更极端的例子,当您的查询包含carpet或java当您的查询包含javascript时,您希望如何匹配car? ;) -
This post 可能会对您有所帮助。
-
我很抱歉,@Reza。我想匹配确切的句子和单词的每个单独出现。我正在考虑我自己的索引递归函数,但我想看看正则表达式是否可以帮助解决这个问题。因为在用空格分割句子后,我尝试使用 array.prototype.forEach 遍历句子。
标签: javascript regex