有没有办法可以从段落中提取第一句话。可以在这里使用正则表达式。如果是的如何?
例如,下面的段落有两个句子,我需要第一句话:"日本贷款将于10月25日以0.1%的利率提供,印度将能够在50年内偿还这笔贷款。偿还将在收到贷款后15年开始。"
我希望的产出:日本的贷款将于10月25日以0.1%的利率提供,印度将能够在50年内偿还。
我该怎么做?是否有使用正则表达式的VBA代码可以在这里使用?
此致 卡兰
答案 0 :(得分:2)
肯定可以使用正则表达式。以下使用“句末”的简单但典型的定义:.
,!
或?
后跟1)至少一个空格,然后是大写字母,或2)文本的结尾。
Public Function TheFirstSentence(ByRef Text As String) As String
With New VBScript_RegExp_55.RegExp
.Pattern = ".*?[.!?](?= +[A-Z]|$)"
If .test(Text) Then
TheFirstSentence = .Execute(Text)(0).Value
Else
TheFirstSentence = vbNullString
End If
End With
End Function
请记住启用对Microsoft VBScript Regular Expressions 5.5
的引用。