gpt4 book ai didi

r - 使用正则表达式查找字符串中的字符 '!' 和 '?'

转载 作者:行者123 更新时间:2023-12-04 10:57:57 25 4
gpt4 key购买 nike

我正在做一个正则表达式,只提取每段的第一句话。目前,我有一个这样的输入向量:

text_insert <- c("hello, i am working through an r workbook. I am doing a regex expression.", "hi, how are you? I am great working through r")

我目前的 R 代码是:
gsub(pattern = "\\..*", replacement = ".", x = text_insert)

但是这不能识别 ?!作为一个句子的结尾。

有关如何识别的任何帮助 !?作为句子的结尾也是如此?

最佳答案

您可以 use | to search for alternatives使用正则表达式:

(\\.|!|?).*

或者,您可以 use a character class ( […] )寻找“字符类中的任何一个符号”:
[.!?].*
.在字符类中不需要转义。

最后, gsub非常适合替换文本,但您实际上在做的是搜索文本。有更好的功能;只是,在基础 R 中,它们使用起来非常不方便。但是,我们可以使用包(例如 stringr)来轻松查找匹配项。

使用此方法意味着您可以更直接地描述您要搜索的内容:以标点符号结尾的字符序列:
〉stringr::str_match(text_insert, '.*?[.!?]')
[,1]
[1,] "hello, i am working through an r workbook."
[2,] "hi, how are you?"

请注意 .*? : *? is the same as * , except non-greedy (aka. “lazy”) .这意味着匹配将在 .!? 中的任何一个的第一个实例中停止。被发现。

关于r - 使用正则表达式查找字符串中的字符 '!' 和 '?',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59053724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com