R 如何提取后跟任意数字的特定字符串?
我有个小问题。 我有以下格式的文本:R 如何提取后跟任意数字的特定字符串?,r,R,我有个小问题。 我有以下格式的文本: A.1 Goals Section 1: Blah Blah Blah Random sentence A. Random sentence. Section 2: Blah Blah Blah Random sentence A. Random sentence. A.2 description 我希望获得以下输出: A.1 Goals Section 1: Blah Blah Blah Section 2: Blah Blah Blah A.
A.1 Goals
Section 1: Blah Blah Blah
Random sentence A. Random sentence.
Section 2: Blah Blah Blah
Random sentence A.
Random sentence.
A.2 description
我希望获得以下输出:
A.1 Goals
Section 1: Blah Blah Blah
Section 2: Blah Blah Blah
A.2 description
因此,基本上如何获得任何重复多次并后跟任何可能数字的字符串(相同字符串和不同数字的任何模式)我们可以使用
grep
在阅读readLines
后使用。在这里,我们两个都匹配
字母(“A”后跟一个
,后跟一个或多个数字-\\d+
)或(|
),如果文本以“节”(^Section
)开头,后跟一些字符(*
),并且空格((\\w+\\s*)后面有重复的单词\\1
-\\1
是捕获组的反向参考)
out您可以试试这个,但是我不确定确切的输出:
string <- c("Section 1: Blah Blah Blah","Random sentence A. Random sentence.",
"Section 2: Blah Blah Blah","Random sentence A.",
"Random sentence.")
grep("(\\w+)\\s+\\1\\s+\\1",string, value=TRUE)
在OP请求后添加:
[1] "Section 1: Blah Blah Blah" "Section 2: Blah Blah Blah"
使用grep
中的invert=TRUE
,您可以更改匹配
grep("(\\w+)\\s+\\1\\s+\\1",string, value=TRUE,invert = TRUE)
因此,上述正则表达式将导致:
#[1] "Random sentence A. Random sentence."
#[2] "Random sentence A."
#[3] "Random sentence."
我的错,我不小心做了那件事。应该是A.2描述有没有办法让它成为字符串?这确实涉及A.和部分,但是否可以进一步概括?@J.Doe如果部分以任何字母开头,您可以使用(^[A-Z]\\\.\\d+)
,我假设您有部分
作为感谢帮助的起点。你知道我是如何得到“第1节:废话废话”之后的第一句话的吗?所以“随机句子A.”@J.Doe我想另一个解决方案会随着你的请求而更新谢谢你的帮助。你知道我如何得到“第1节:废话废话”和“第2节:废话废话废话”之后的第一句话,一般来说,基本上都是“随机句子A”
grep("(\\w+)\\s+\\1\\s+\\1",string, value=TRUE,invert = TRUE)
#[1] "Random sentence A. Random sentence."
#[2] "Random sentence A."
#[3] "Random sentence."