Javascripts Regex。在字符串中查找重要的单词和名称

时间:2017-04-17 14:38:51

标签: javascript regex

我想在字符串中找到重要的单词和名称。

  1. 姓名( Jon Dew
  2. 所有大写词(平均重要)如: FBI
  3. 不应该找到。,?,!除了它是一个名字之外,它意味着两个或更多的单词与Capital如名: Jon Dew 或长期重要( National String Instrument Corporation )4个单词的大写字母是很明显,这是一个重要的名字。
  4. 我有这个正则表达式,不错,但它不排除点后的单词,问号等。但是应该接受在点之后开始的名字。

    \B.\s(([A-Z][A-Za-z0-9]*\s)?[A-Z][A-Za-z0-9]*)\b
    

    https://regex101.com/r/TSjtMp/2

1 个答案:

答案 0 :(得分:1)

这更像是一个重要的评论,而不是一个答案,但发布这个作为答案,因为我可以有更好的格式。

使用你的确切正则表达式,我可以提出丢弃正则表达式技术。 因为,它实际上是不可能的"要知道一个单词在点之后是否重要,例如"特朗普"或"他们"你实际上可以创建一个这样的模式:

A|The|This|(\b(?:[A-Z][A-Za-z0-9]*\s)?[A-Z][A-Za-z0-9]*\b)

enter image description here

我们的想法是拥有一系列您不想要的模式,但最后一种模式实际上是您想要的,然后您必须抓取捕获组中的内容。例如:

A

在下面的链接中,您可以看到这个想法的一个例子:

<强> Working demo

您可以使用模式丢弃您不想要的字词,在上面的例子中,我只是丢弃了TheThisTheodore的模式。这只是一个想法,因为如果你有async它不会重要&#34;,但至少你可以定义你的丢弃模式。