首页 > 解决方案 > 使用 R 计算字符串中的单句点和双句点

问题描述

我有一个示例字符串,如下所示

text = "它.. 是一个优先事项。所以..."

我需要计算一个句号发生的次数,以及两个句号发生的次数和三个句号一起发生的次数。对于上述陈述,我需要我的回答是:

单句点数:1,两个填充点数:1,三个句点数:1

我使用 R 代码:stringr::str_count(text,"\\.\\.\\.")-> 这给了我三个连续句号的 1 计数,这是正确的

接下来我使用:stringr::str_count(text,"\\.\\.")--> 这给了我一个值 2,因为另外三组句号同时出现。但我希望这个计数为 1,而另一组必须符合 3 个句号。

同样,我需要将单个句号计数为 '1' ,但上面的代码给了我 6,一起计数。我怎样才能在 R 中实现这一点?

提前致谢。

我怎样才能在 R 中实现这一点?

标签: rregexstringr

解决方案


您可以使用环视来限定您的句号正则表达式模式,以确保您获得正确的计数:

stringr::str_count(text, "(?<!\\.)\\.(?!\\.)", perl=TRUE)        # number of 1 full stops
stringr::str_count(text, "(?<!\\.)\\.\\.(?!\\.)", perl=TRUE)     # number of 2 full stops
stringr::str_count(text, "(?<!\\.)\\.\\.\\.(?!\\.)", perl=TRUE)  # number of 3 full stops

推荐阅读