我不明白这里发生了什么.我应该如何输入gsub来获取字符串"Yaho \'o"?
>> "Yaho'o".gsub("Y", "\\Y")
=> "\\Yaho'o"
>> "Yaho'o".gsub("'", "\\'")
=> "Yahooo"
Run Code Online (Sandbox Code Playgroud) 我该怎么办?
我懂了:
name = "^aH^ai" string.gsub(name, "^a", "")
应返回"Hi",但它将插入符号作为模式字符
这将是一个什么样的解决方案?(必须在gsub中完成)
我正在尝试在Ruby中的块中使用命名捕获组.$1仍然有效,但我想用我给的名字来引用它.
"foo /(bar)".gsub(/(?<my_word> \(.*?\) )/x) do |match|
puts "$1 = #{$1} and $my_word = #{$my_word}"
end
Run Code Online (Sandbox Code Playgroud)
预期:$1 = (bar) and $my_word = (bar)
我想修补从网页中提取的一些文本数据.样品:
t="First sentence. Second sentence.Third sentence."
Run Code Online (Sandbox Code Playgroud)
在第二句末尾的点之后没有空格.这标志着第3个句子在原始文档中的单独行(在br标记之后).
我想使用这个正则表达式将"\n"字符插入适当的位置并修补我的文本.我的正则表达式:
t2=t.gsub(/([.\!?])([A-Z1-9])/,$1+"\n"+$2)
Run Code Online (Sandbox Code Playgroud)
不过遗憾的是它不工作:"NoMethodError:未定义的方法`+"的零:NilClass"我怎样才能正确地反向引用匹配的群体?在Microsoft Word中这么简单,我只需要使用\ 1和\ 2符号.
我有csv文件内容在引用文本内有双引号
test,first,line,"you are a "kind" man",thanks
again,second,li,"my "boss" is you",good
Run Code Online (Sandbox Code Playgroud)
我需要用""替换逗号前面或后面的每个双引号.
test,first,line,"you are a ""kind"" man",thanks
again,second,li,"my ""boss"" is you",good
Run Code Online (Sandbox Code Playgroud)
所以"被"替换为""
我试过了
x.gsub(/([^,])"([^,])/, "#{$1}\"\"#{$2}")
Run Code Online (Sandbox Code Playgroud)
但没有奏效
我想创建一个测试,返回true或false以进行电子邮件处理.
现在,如果电子邮件地址以r +开头,那么它是真的,否则它是假的.这将有助于我们的服务器忽略我们遇到的很多垃圾邮件.
例子:
r+kldslkadslkadslk@site.com .. true
r+123123312@site.com .. true
vigraaaa@site.com .. FALSE
Run Code Online (Sandbox Code Playgroud)
使用Rails/ruby/regex处理此问题的最有效方法是什么?
谢谢
目标
是导轨/红宝石中的一个衬垫:
ABORT if XXXXX == 0
Run Code Online (Sandbox Code Playgroud) 我已经定义了
vec <- "5f 110y, Fast"
Run Code Online (Sandbox Code Playgroud)
和
gsub("[\\s0-9a-z]+,", "", vec)
Run Code Online (Sandbox Code Playgroud)
给" 5f Fast"
我原以为它会给出" Fast",因为逗号之前的所有内容都应该与正则表达式相匹配.
任何人都可以向我解释为什么不是这种情况?
我有一个单独的行:和一个'我想要摆脱的行.我想用awk它.我尝试过使用:
awk '{gsub ( "[:\\']","" ) ; print $0 }'
Run Code Online (Sandbox Code Playgroud)
和
awk '{gsub ( "[:\']","" ) ; print $0 }'
Run Code Online (Sandbox Code Playgroud)
和
awk '{gsub ( "[:']","" ) ; print $0 }'
Run Code Online (Sandbox Code Playgroud)
他们没有工作,但返回错误Unmatched "..当我放
awk '{gsub ( "[:_]","" ) ; print $0 }'
Run Code Online (Sandbox Code Playgroud)
然后它工作并删除所有:和_字符.我该如何摆脱'炭火?
我想gsub用2个反斜杠替换字符串中每个出现反斜杠的情况.
目前,我所尝试的是gsub("\\\\", "\\", x).这似乎不起作用.但是,如果我更改表达式而不是用"a"替换每个反斜杠,它可以正常工作.
> gsub("\\\\", "\\", "\\")
[1] ""
> gsub("\\\\", "a", "\\")
[1] "a"
> gsub("\\\\", "\\\\", "\\")
[1] "\\"
Run Code Online (Sandbox Code Playgroud)
最后一个字符只有一个反斜杠; R只打印2,因为它使用反斜杠打印转义字符.使用nchar确认长度为1.
是什么导致这个功能?第二个参数gsub不是正则表达式,因此在字符串文字中有4个反斜杠应该转换为带有2个反斜杠的字符.gsub上面的第一个调用返回一个空字符串更没意义.
我有以下字符串:
strings <- c("ABBSDGNHNGA", "AABSDGDRY", "AGNAFG", "GGGDSRTYHG")
Run Code Online (Sandbox Code Playgroud)
我想切断字符串,一旦A,G和N的出现次数达到一定值,比如说3.在这种情况下,结果应该是:
some_function(strings)
c("ABBSDGN", "AABSDG", "AGN", "GGG")
Run Code Online (Sandbox Code Playgroud)
我试图用stringi,stringr和正则表达式的表达式,但我无法弄清楚.