如何在 R 中使用正则表达式删除以 * 开头的行

How to delete a line which starts with a * using regex in R

我目前在 R 中使用正则表达式来删除以 * 开头的行,例如:

* Wikipedia started from the public domain version reprinted by the [http://www.ccel.org/ Christian Classics Ethereal Library].  
* James William Richard (1898). From [[Internet Archive]].
* [http://www.melanchthon.de/e/ The Phillip Melanchthon Quinquennial]

我尝试使用函数 gsub 和正则表达式,例如:

gsub("^[\*]+[\s\[A-Za-z,;'\"\s]+[.?!\]]$","",tex1)

但是什么也没发生。你能帮我找出这个表达式的问题吗?

如果你有一个字符串向量 v,最好搜索向量中的一个元素是否包含你正在寻找的主题,所以,你需要 grepl 而不是gsub.

你可以这样做:

v <- c("hello", "*hi", "world")
v[!grepl("^\*", v)] # looks for the elements that begins with * and negates the result
#[1] "hello" "world"

删除以*

开头的行
sub("(?m)^\*.*\n?", "", x, perl=T)