草庐IT

substring

全部标签

ruby - 正则表达式在哪个位置失败?

我需要一个非常简单的字符串验证器来显示第一个符号与所需格式不对应的位置。我想使用正则表达式,但在这种情况下,我必须找到与表达式相对应的字符串停止的位置,但我找不到可以做到这一点的方法。(这一定是一种相当简单的方法……也许没有?)例如,如果我有正则表达式:/^Q+E+R+$/带字符串:"QQQQEEE2ER"期望的结果应该是7 最佳答案 一个想法:你可以做的是标记你的模式并用可选的嵌套捕获组编写它:^(Q+(E+(R+($)?)?)?)?然后你只需要计算你获得的捕获组的数量就可以知道正则表达式引擎在模式中停止的位置,你可以确定匹配结束

ruby - 如果它是标点符号,我怎么能从字符串中删除最后一个字符,在 ruby​​ 中?

啊,正则表达式有点困惑。我正在尝试删除字符串末尾所有可能的标点符号:ifstr[str.length-1]=='?'||str[str.length-1]=='.'||str[str.length-1]=='!'orstr[str.length-1]==','||str[str.length-1]==';'str.chomp!end我相信有更好的方法来做到这一点。有什么指点吗? 最佳答案 str.sub!(/[?.!,;]?$/,'')[?.!,;]-字符类。匹配这5个字符中的任何一个(注意,。在字符类中并不特殊)?-前一个字符或组

python - Ruby 相当于 Python str[3 :]

是否有Ruby等效于Python的方法来获取在字符串末尾结束的子字符串,如str[3:]?必须输入字符串的长度并不方便。 最佳答案 传递最后一个元素=-1的范围str[3..-1] 关于python-Ruby相当于Pythonstr[3:],我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12978768/

ruby - 获取包含在两个特定单词之间的子字符串

当我对使用ruby​​的特定单词之间包含的文本感兴趣时,我想知道如何进行。例如。@var="Hi,Iwanttoextractcontainer_startONLYTHISDYNAMICCONTENTcontainer_endfromthemessagecontainedbetweenthecontainer_startandcontainer_end"现在我想从字符串中提取大写的内容,即动态但始终包含在两个容器中(container_start和container_end) 最佳答案 简单的正则表达式就可以:@var="Hi,Iw

ruby - 检查字符串末尾的子字符串

假设我有两个字符串:“这个测试有一个”“这是一个测试”如何匹配字符串末尾的“Test”并只得到第二个字符串而不是第一个字符串。我正在使用include?但它会匹配所有匹配项,而不仅仅是子字符串出现在字符串末尾的匹配项。 最佳答案 您可以使用end_with?非常简单地完成此操作,例如"TestsomethingTest".end_with?'Test'或者,您可以使用匹配字符串结尾的正则表达式:/Test$/==="TestsomethingTest" 关于ruby-检查字符串末尾的子字

ruby - Ruby 中用于 "String#include?"的算法

有谁能指出包含的算法是什么?Ruby中的方法?例如"helloworld".include?("hello") 最佳答案 正如emboss在他的回答中所述,String#include调用rb_str_index。此函数依次调用rb_memsearch,它实现了Rabin-Karpstringsearchalgorithm,根据thispost在ruby-forum.com上。 关于ruby-Ruby中用于"String#include?"的算法,我们在StackOverflow上找到一

ruby - 用于类似正则表达式匹配的 xpath 表达式?

我想在具有特定模式的html文档中搜索divid。我想在正则表达式中匹配这个模式:foo_([[:digit:]]{1.8})使用xpath。上述模式的xpath等价物是什么?我坚持//div[@id="foo_然后什么?如果有人能为它继续一个合法的表达。编辑抱歉,我想我必须详细说明一下。其实不是foo_,它是post_message_顺便说一句,我使用mechanize/nokogiri(ruby​​)这是片段:html_doc=Nokogiri::HTML(open(myfile))message_div=html_doc.xpath('//div[substring(@id,13

ruby - 我如何检查字符串中是否存在某个单词,如果不存在,则在 ruby​​ 中返回 false?

假设我有一个字符串str="Thingstodo:eatandsleep."如何检查"do:"是否存在于str中,不区分大小写? 最佳答案 像这样:puts"yes"ifstr=~/do:/i要返回一个bool值(大概是从一个方法中),将匹配结果与nil进行比较:defhas_do(str)(str=~/do:/i)!=nilend或者,如果你不喜欢!=nil那么你可以使用!~而不是=~并否定结果:defhas_do(str)notstr!~/do:/iend但我真的不喜欢双重否定......

ruby - 提取句子/字符串中的最后一个词?

我有一个字符串数组,具有不同的长度和内容。现在我正在寻找一种从每个字符串中提取最后一个单词的简单方法,而无需知道该单词有多长或字符串有多长。类似的东西;array.each{|string|putsstring.fetch("",last) 最佳答案 这应该没问题"myrandomsentence".split.last#=>"sentence"要排除标点符号,删除它"myrando­msente­nce..,.!?".­split.last­.delete('.­!?,')#=>"sentence"要从您收集的数组中获取“遗言”作

使用substring断开列

我在列中有很长的字符串作为员工的全名,我想以名称,中间名和姓氏分解。例如我有Andrade,MariaSandra(lname,(space)fname(space)mname)破裂将就像fname=玛丽亚,lname=andrade和中间名,例如桑德拉(Sandra)。我的专栏通常有lname,fname。我可以分割lname,但不能正确地打破fname和mnameSELECTEmployeeNameas[fullname],SUBSTRING(EmployeeName,CHARINDEX(',',EmployeeName)+1,LEN(EmployeeName))as[Firstname]