从段落中提取第一句话

时间:2017-09-12 02:38:01

标签: regex excel vba excel-vba

有没有办法可以从段落中提取第一句话。可以在这里使用正则表达式。如果是的如何?

例如,下面的段落有两个句子,我需要第一句话:

"日本贷款将于10月25日以0.1%的利率提供,印度将能够在50年内偿还这笔贷款。偿还将在收到贷款后15年开始。"

我希望的产出:日本的贷款将于10月25日以0.1%的利率提供,印度将能够在50年内偿还。

我该怎么做?是否有使用正则表达式的VBA代码可以在这里使用?

此致 卡兰

1 个答案:

答案 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的引用。