仅在R中从文本中删除单个正斜杠

时间:2015-10-23 22:56:06

标签: r string str-replace gsub

我试图仅使用R从任何文本中删除/我已经尝试了不同的方法,我得到了混合的结果。

这是我正在处理s/p Left IOLI 3/9/04.

的文字

我正在尝试生成类似sp Left IOLI 3/9/04.

的输出

只删除文本中的/而不是数字。

我试过这四个

gsub("\", "", str, fixed=T) 
gsub("/", ".", str, fixed=T)
gsub("[^A-Za-z]", ".", str, perl =T)
str_replace( str, "/", "")

到目前为止只有gsub("[^A-Za-z]", ".", str, perl =T)有效。 sucker剥夺了所有文本号码和所有内容的/。我只需要文本中的/消失。任何帮助都非常感谢人们。

2 个答案:

答案 0 :(得分:2)

我们可以使用正则表达式的外观来删除不在数字之间的正斜杠。

{mimetypes: ['image/*', 'application/pdf']}

or 

如果我们还需要在左侧或右侧包含非数字字符时删除gsub('(?<![0-9])/(?![0-9])', '', str, perl=TRUE) #[1] "sp Left IOLI 3/9/04."

/

数据

gsub('(?<![0-9])/|/(?![0-9])', '', str1, perl=TRUE)
#[1] "sp Left IOLI 3/9/04." "s12 45p sp Left"     

答案 1 :(得分:0)

另一种方法是运行多个正则表达式。这里使用包字符串的str_replace_all进行演示,但显然也可以使用基函数。

#First correct for / between 2 alphabets like s/p
mystring <- str_replace_all(mystring, "([a-zA-Z])/([a-zA-Z])", "\\1\\2")

#Next, correct for / between 1 alphabet and 1 number like s/12 or 45/p
mystring <- str_replace_all(mystring, "([a-zA-Z])/([\\d])", "\\1\\2")
mystring <- str_replace_all(mystring, "([\\d])/([a-zA-Z])", "\\1\\2")