是否可以在gsub表达式中使用否定匹配?我希望替换字符串,hello 除了那些开头的字符串hello Peter
my-string.gsub(/^hello@/i, '')
Run Code Online (Sandbox Code Playgroud)
我该@怎么做而不是?
我读了一个文件:
local logfile = io.open("log.txt", "r")
data = logfile:read("*a")
print(data)
Run Code Online (Sandbox Code Playgroud)
输出:
...
"(\.)\n(\w)", r"\1 \2"
"\n[^\t]", "", x, re.S
...
Run Code Online (Sandbox Code Playgroud)
是的,logfile看起来很糟糕,因为它充满了各种命令
如何从数据变量中调用gsub和删除ie "(\.)\n(\w)", r"\1 \2"行?
下面的代码段,不起作用:
s='"(\.)\n(\w)", r"\1 \2"'
data=data:gsub(s, '')
Run Code Online (Sandbox Code Playgroud)
我想有些逃避需要完成.任何简单的方案?
更新:
local data = [["(\.)\n(\w)", r"\1 \2"
"\n[^\t]", "", x, re.S]]
local s = [["(\.)\n(\w)", r"\1 \2"]]
local function esc(x)
return (x:gsub('%%', '%%%%')
:gsub('^%^', '%%^')
:gsub('%$$', '%%$')
:gsub('%(', '%%(')
:gsub('%)', '%%)')
:gsub('%.', '%%.')
:gsub('%[', '%%[')
:gsub('%]', '%%]')
:gsub('%*', '%%*')
:gsub('%+', '%%+')
:gsub('%-', '%%-')
:gsub('%?', …Run Code Online (Sandbox Code Playgroud) 我有一个包含字符串"Energyper m"的矩阵.在'm'是带有问号的菱形符号之前 - 我不知道它是什么.
我试图通过在矩阵的列上使用它来摆脱它:
a=gsub('Energy per ?m','',a)
Run Code Online (Sandbox Code Playgroud)
[和使用复制/粘贴的GSUB的第一项],但它不工作.[意想不到的符号"A =代表(5,能源每".当我尝试提取从原来的矩阵grepl我得到的东西:
46: In grepl("ref. value", raw$parameter) :
input string 15318 is invalid in this locale
Run Code Online (Sandbox Code Playgroud)
我该怎样摆脱所有这些迹象?我想只有0-9,AZ,az,/和'.其余的可能会被破坏.
我正在使用文本格式读取数据文件readLines.第一个"列"是我不需要的复杂文本.下一列包含我需要的数据.第一个"列"和数据用冒号(:)分隔.我希望在第一个冒号处拆分每一行并删除生成的文本字符串,仅保留数据.
下面是一个示例数据文件.一个潜在的复杂因素是一行数据包含多个冒号.这条线可能在某些时候成为我的标题.所以,我可能不应该在每个结肠处分开,只是在第一个结肠处.
my.data <- "first string of text..: aa : bb : cc
next string ........ : 2 0 2
third string......1990: 7 6 5
last string : 4 2 3"
my.data2 <- readLines(textConnection(my.data))
my.data2
Run Code Online (Sandbox Code Playgroud)
我试过这里提供的代码:
和这里:
上面第一个链接的代码似乎只在第一行的第一个冒号处分开.第二个链接的代码可能会做我想要的,但对我来说太复杂到目前为止无法成功修改它.
这是我希望获得的数据,此时我可以使用一个非常简单的gsub语句简单地用空格替换第一行中剩余的冒号:
aa : bb : cc
2 0 2
7 6 5
4 2 3
Run Code Online (Sandbox Code Playgroud)
很抱歉,如果这是我未找到的帖子的副本,感谢您提供任何建议或帮助.
如何更换空字符串?
这个:
x = c("","b")
gsub("","taco",x)
Run Code Online (Sandbox Code Playgroud)
生产:
"taco" "tacobtaco"
Run Code Online (Sandbox Code Playgroud)
代替:
"taco" "b"
Run Code Online (Sandbox Code Playgroud)
有没有办法替换空字符串?
我有一个带有换行符的字符串,我想要用于空格.
"hello I\r\nam a test\r\n\r\nstring".gsub(/[\\r\\n]/, ' ')
Run Code Online (Sandbox Code Playgroud)
像这样的东西^只有我的正则表达式似乎也在替换'r'和'n'字母.另一个约束是有时模式重复两次本身,因此就会与在连续两个空格来代替,虽然这不是优选的,最好不是被切断的所有文本分开.
如果有办法只选择新行字符.或者甚至更好,如果有更多的方法来接近这个去正则表达式?
我想\n在R中的一个非常长的字符向量中用换行符(\n )替换空格.但是,我不想替换每个空格,但仅当子字符串强制执行一定数量的字符(n)时.
例:
mystring <- "this string is annoyingly long and therefore I would like to insert linebreaks"
Run Code Online (Sandbox Code Playgroud)
现在我想在mystring每个子字符串长度大于20个字符(nchar > 20)的条件下在每个空格中插入换行符.
因此,结果字符串应该如下所示:
"this string is annoyingly\nlong and therefore I would\nlike to insert linebreaks")
Run Code Online (Sandbox Code Playgroud)
\n在25,26和25个字符后插入了换行符(\n ).
我怎样才能做到这一点?也许东西结合gsub和strsplit?
我正在使用dplyr并gsub删除特殊字符.我正在尝试翻译我用基础R的代码.
这是一个类似我的数据的假例子:
region = c("regi\xf3n de tarapac\xe1","regi\xf3n de tarapac\xe1")
provincia = c("cami\xf1a","iquique")
comuna = c("tamarugal","alto hospicio")
comunas = cbind(region,provincia,comuna)
Run Code Online (Sandbox Code Playgroud)
这对我有用:
comunas = comunas %>%
mutate(comuna = gsub("\xe1", "\u00e1", comuna), # a with acute
comuna = gsub("<e1>", "\u00e1", comuna) # a with acute
)
Run Code Online (Sandbox Code Playgroud)
但现在我想将相同的内容应用于每一列:
comunas = comunas %>%
mutate_all(funs(gsub("\xe1", "\u00e1", .), # a with acute
gsub("<e1>", "\u00e1", .) # a with acute
))
Run Code Online (Sandbox Code Playgroud)
我看到最后一个块没有效果.想法是获得:
region provincia comuna
[1,] "regi\xf3n de tarapacá" "cami\xf1a" "tamarugal"
[2,] "regi\xf3n de …Run Code Online (Sandbox Code Playgroud) 我需要\"从矢量中删除.这是我的数据:
data <- c("\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1803224&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Flinux-linux-security-masterclass-3-in-1%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1848638&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fmastering-kali-linux%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1426684&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Finformation-gathering-with-kali-linux%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1628300&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Flinux-switchblade%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1615700&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fadministrador-de-sistemas-junior-en-windows-server-y-linux%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.809770&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Flearn-bash-shell-in-linux-for-beginners-lite%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.574388&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fhow-to-install-linux-ubuntu-server%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1436610&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Fcentos-and-ubuntu-managing-packages%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1771266&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Flinux-foundation-certified-system-administrator-exam%2F",
"\"https://click.linksynergy.com/link?id=RUxZriH*PWc&offerid=323058.1734052&type=2&murl=https%3A%2F%2Fwww.udemy.com%2Flinux-server-security%2F"
)
Run Code Online (Sandbox Code Playgroud)
如您所见,每个对象都以\".我怎样才能专门删除这些字符并留下链接?