如何提取点​​号(。)结尾的句子?

时间:2018-11-26 14:13:03

标签: regex

我需要提取句点以'.'结尾的句子,但不要提取句子以' ...'结尾(空白和三个点)。

示例:

I love you.
I love you too ...

我想匹配第一句话而不是第二句话。

i image python样式伪代码:

for string in strings:
    checker1 = (string == .)
    if checker:
        checekr2 = (prev_string(string) != blank)
        if checker2:
            extract_all_strings()
        else:
            pass
    else:
        pass

但我无法显示正则表达式代码。

3 个答案:

答案 0 :(得分:1)

您可以使用(?<! \.\.)\.$,请参阅demo

答案 1 :(得分:1)

您可以使用以下正则表达式:

[\w ]+\.(?!\.)

它与一个或多个Word字符或Space匹配,然后使用负向外观确保只有一个点。

答案 2 :(得分:1)

在这里,您使用了一个非常简单的正则表达式:

[\w ]+\.$

Regex101上测试解决方案。

  • [\w ]是一组允许的字符,其中\w代表[a-zA-Z0-9_]中的任何字符,代表空格本身。
  • [\w ]+,其中+表示,以上所描述的组中的字符可能出现一次到无限次。
  • \.是点本身,必须转义,否则点.匹配任何字符。
  • $代表字符串的结尾。

这可以确保仅捕获到以一个点结尾的句子。

另一种不太严格的方法可能是允许任何使用,其中末尾的第二个字符不是点,最后一个字符是点(Regex101)。

.+[^\.]\.$