2017-10-20 124 views
0

我想知道SAS中是否有简单的方法来计算字符串中的句子?计算SAS中字符串中句子的数量

在伪代码中,我将寻找每.?,并且!指数,并检查之前,该指数(-1-2)是一个字符。

有什么更好的点子?

回答

2

假设您的句子正确加句号,每?!.应该有一个句子,所以在这种情况下您可以使用countc(my_string,'?!.')。主要的例外可能是interrobang(?!,!?)和省略号(...)。

如果你的字符串中包含很多带有缺失停止或双停止的句子,一个选项就是简单地交叉你的手指,并希望它们或多或少地取消。

如果有很多双停止但没有那么多丢失,你可以应用一个正则表达式来替换任何一个连续的停止运行,只需要一个.,然后再计算这些停止点。 countc(prxchange('s/[\.!\?]{2,}/./',-1,string),'?!.')

+0

您可以使用正则表达式来解释由问号和感叹号(显然称为“interrobang”)双重停顿或句子。 – user2877959

+0

你的正则表达式应该用'+'(或'{1,}')而不是'{2,}'来代替单个问号和感叹号。或者你的'countc'函数应该在'.'之上继续计算'?'和'!'。 – user2877959

+0

公平点 - 固定。 – user667489