Regex rubular上的正则表达式匹配,但不是Ruby中的正则表达式匹配
我试图从stringRegex rubular上的正则表达式匹配,但不是Ruby中的正则表达式匹配,regex,ruby,Regex,Ruby,我试图从stringcheese返回“A1RKKUPIHCS9HS”: cheese = "#<struct Peddler::Marketplace id=\"A1RKKUPIHCS9HS\",..." 它可以工作,但当我在Ruby中尝试它时,它不能工作。不知道为什么。你可以做.scan(/id=“({14})”/)作为一种更简单的方法。在Rubular中输入以下内容作为测试字符串: #<struct Peddler::Marketplace id="A1RKKUPIHCS9HS
cheese
返回“A1RKKUPIHCS9HS”
:
cheese = "#<struct Peddler::Marketplace id=\"A1RKKUPIHCS9HS\",..."
它可以工作,但当我在Ruby中尝试它时,它不能工作。不知道为什么。你可以做
.scan(/id=“({14})”/)
作为一种更简单的方法。在Rubular中输入以下内容作为测试字符串:
#<struct Peddler::Marketplace id="A1RKKUPIHCS9HS",...
#出于好奇,使用:
cheese=“#字符串中没有反斜杠,但您试图将它们与正则表达式中的\
匹配,请从正则表达式中删除\\
。您还可以编写cheese[cheese.index(“”)+1,14]=“A1RKKUPIHCS9HS”
@CarySwovelandcheese[cheese.index('id=“)+4,14]
如果您想模仿regexp方法:)转义第一个双引号而不是第二个双引号有什么意义?Oops修复了我的regexp,实际上不需要反斜杠,检查显示反斜杠的字符串时,它只是ruby
#<struct Peddler::Marketplace id="A1RKKUPIHCS9HS",...
cheese = "#<struct Peddler::Marketplace id=\"A1RKKUPIHCS9HS\",..."
cheese[/(?<=id=").*?(?=")/]
#⇒ "A1RKKUPIHCS9HS"