标签: gsub

转义gsub的字符串

我读了一个文件:

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)

lua gsub

6
推荐指数
3
解决办法
2万
查看次数

R从数据框中删除特殊字符

我有一个包含字符串"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,/和'.其余的可能会被破坏.

regex grep r gsub non-printing-characters

6
推荐指数
1
解决办法
2万
查看次数

在R中的字符串中的两个字母之间添加空格

假设我有一个字符串

s = "PleaseAddSpacesBetweenTheseWords"
Run Code Online (Sandbox Code Playgroud)

我如何在R中使用gsub在单词之间添加一个空格以便我得到

"Please Add Spaces Between These Words"
Run Code Online (Sandbox Code Playgroud)

我应该做点什么

gsub("[a-z][A-Z]", ???, s)
Run Code Online (Sandbox Code Playgroud)

我该怎么办?另外,我发现R的正则表达式文档令人困惑,因此对R中的正则表达式的引用或写法将非常感激.

regex r gsub

6
推荐指数
1
解决办法
1万
查看次数

R中逗号前后的正则表达式提取数据

我是一个正则表达式初学者,因为我通常不处理文本。我有一个非常简单的问题。我设法构造了以下正则表达式以在逗号后提取数据:

sub('.*,\\s*','', X)
Run Code Online (Sandbox Code Playgroud)

其中 X 是我正在搜索的列。

我现在想分别提取逗号前的数据,但我正在努力使用正则表达式语法。感谢帮助。

regex r gsub

6
推荐指数
1
解决办法
7733
查看次数

如何从字符串中删除unicode <U + 00A6>?

我有一个字符串:

q <-"<U+00A6>  1000-66329"
Run Code Online (Sandbox Code Playgroud)

我想删除<U+00A6>并获取1000 66329.

我试过用:

gsub("\u00a6"," ", q,perl=T)
Run Code Online (Sandbox Code Playgroud)

但它并没有删除任何东西.我该怎么办gsub才能获得1000 66329

regex r gsub

6
推荐指数
1
解决办法
1万
查看次数

gsub 的否定 | 替换特定向量中除字符串之外的所有内容

我有一个字符串向量:

ve <- c("N","A","A","A","N","ANN","NA","NFNFNAA","23","N","A","NN", "parnot", "important", "notall")
Run Code Online (Sandbox Code Playgroud)

我只想在此向量中保留三个可能的值:NANA

因此,我想替换任何不是NA的元素NA

我怎样才能实现这个目标?

我已经尝试过以下方法:

gsub(ve, pattern = '[^NA]+', replacement = 'NA')
gsub(ve, pattern = '[^N|^A]+', replacement = 'NA')
Run Code Online (Sandbox Code Playgroud)

但这些效果不佳,因为它们将每个字符串中的每个“A”或“N”实例替换为 NA。所以在某些情况下我最终会得到NANANANANANA, 而不是简单地NA.

regex r negation gsub

6
推荐指数
1
解决办法
2541
查看次数

使用 gsub 或 sub 函数只获取字符串的一部分?

      Col
WBU-ARGU*06:03:04
WBU-ARDU*08:01:01
WBU-ARFU*11:03:05
WBU-ARFU*03:456
Run Code Online (Sandbox Code Playgroud)

我有一列有 75 行变量,例如上面的 col。我不太确定如何使用 gsub 或 sub 以便在第一个冒号之后的整数之前起床。

预期输出:

      Col
WBU-ARGU*06:03
WBU-ARDU*08:01
WBU-ARFU*11:03
WBU-ARFU*03:456
Run Code Online (Sandbox Code Playgroud)

我试过这个,但它似乎不起作用:

gsub("*..:","", df$col)
Run Code Online (Sandbox Code Playgroud)

regex r gsub

6
推荐指数
1
解决办法
1997
查看次数

将 gsub 用于 R 中字符串中的特定事件?

我有两个字符串:

mystring1 <- c("hello i am a cat.  just kidding, i'm not a cat i'm a cat.  dogs are the best animal.  not cats!")

mystring2 <- c("hello i am a cat.  just kidding, i'm not a cat i'm a cat.  but i have a cat friend that is a cat.")
Run Code Online (Sandbox Code Playgroud)

我想将两个字符串中第三次出现的单词 cat 更改为 dog。

理想的情况下,string1string2内容如下:

mystring1
[1] "hello i am a cat.  just kidding, i'm not a cat i'm a dog.  dogs are the best animal. …
Run Code Online (Sandbox Code Playgroud)

r gsub

6
推荐指数
1
解决办法
181
查看次数

仅当字符串在 R 中出现多次时,如何使用替换字符串的第一次出现?

我有一个看起来像这样的字符串:

problem <- c("GROUP 1", "GROUP 1 & GROUP 2", "GROUP 1 & GROUP 2 & GROUP 3", "GROUP 1 & GROUP 2 & GROUP 3 & GROUP 4")
Run Code Online (Sandbox Code Playgroud)

每组之间有“&”。当存在多个“&”时,我想使用 R(或者包sub()中的某些东西)将每个“&”替换为“,”。stringr但是,我不想改变最后的“&”。我该怎么做,它看起来像:

#Note: Only the 3rd and 4th strings should be changed
solution <- c("GROUP 1", "GROUP 1 & GROUP 2", "GROUP 1, GROUP 2 & GROUP 3", "GROUP 1, GROUP 2, GROUP 3 & GROUP 4")
Run Code Online (Sandbox Code Playgroud)

在实际的字符串中,可能有无限数量的“&”,所以如果可能的话,我不想硬编码限制。

r gsub

6
推荐指数
1
解决办法
147
查看次数

删除字符串中的尾部括号

我正在尝试修剪 R 字符串列表中的尾随方括号、内部引号和斜杠,最好使用dplyr.

样本数据:

df <- c("['Mamie Smith']", "[\"Screamin' Jay Hawkins\"]")
Run Code Online (Sandbox Code Playgroud)

预期结果:

"Mamie Smith", "Screamin' Jay Hawkins"
Run Code Online (Sandbox Code Playgroud)

我尝试过的:

"Mamie Smith", "Screamin' Jay Hawkins"
Run Code Online (Sandbox Code Playgroud)
df %>%
  str_replace("[[]]", "") # Also throws error
Run Code Online (Sandbox Code Playgroud)

regex r gsub str-replace dplyr

6
推荐指数
1
解决办法
329
查看次数

标签 统计

gsub ×10

r ×9

regex ×7

dplyr ×1

grep ×1

lua ×1

negation ×1

non-printing-characters ×1

str-replace ×1