Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex rubular上的正则表达式匹配,但不是Ruby中的正则表达式匹配_Regex_Ruby - Fatal编程技术网

Regex rubular上的正则表达式匹配,但不是Ruby中的正则表达式匹配

Regex rubular上的正则表达式匹配,但不是Ruby中的正则表达式匹配,regex,ruby,Regex,Ruby,我试图从stringcheese返回“A1RKKUPIHCS9HS”: cheese = "#<struct Peddler::Marketplace id=\"A1RKKUPIHCS9HS\",..." 它可以工作,但当我在Ruby中尝试它时,它不能工作。不知道为什么。你可以做.scan(/id=“({14})”/)作为一种更简单的方法。在Rubular中输入以下内容作为测试字符串: #<struct Peddler::Marketplace id="A1RKKUPIHCS9HS

我试图从string
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”
@CarySwoveland
cheese[cheese.index('id=“)+4,14]
如果您想模仿regexp方法:)转义第一个双引号而不是第二个双引号有什么意义?Oops修复了我的regexp,实际上不需要反斜杠,检查显示反斜杠的字符串时,它只是ruby
#<struct Peddler::Marketplace id="A1RKKUPIHCS9HS",...
cheese = "#<struct Peddler::Marketplace id=\"A1RKKUPIHCS9HS\",..."
cheese[/(?<=id=").*?(?=")/]
#⇒ "A1RKKUPIHCS9HS"