Ruby匹配转义的html字符串的一部分

时间:2011-03-16 15:50:09

标签: regex

如何匹配此转义的html字符串的ID?字符串的一部分以id = \“开头,以\结尾。”在此示例中,我需要art_images_attributes_0_attachement

"<div class=\"input string optional\"><label class=\"string optional\" for=\"art_images_attributes_0_attachement\"> Attachement</label><input class=\"string optional\" id=\"art_images_attributes_0_attachement\" maxlength=\"255\" name=\"art[images_attributes][0][attachement]\" size=\"50\" type=\"text\" /></div>"
 => "<div class=\"input string optional\"><label class=\"string optional\" for=\"art_images_attributes_0_attachement\"> Attachement</label><input class=\"string optional\" id=\"art_images_attributes_0_attachement\" maxlength=\"255\" name=\"art[images_attributes][0][attachement]\" size=\"50\" type=\"text\" /></div>"

祝你好运。 AsbjørnMorell

2 个答案:

答案 0 :(得分:1)

以下正则表达式将捕获您想要的输出:

/id="([^"]*)"/

和Rubular:http://www.rubular.com/r/dtXqK2GBPe

请注意,引号前实际上没有\个字符,在Ruby中,字符串"id=\"test\""的内容为id="test"\就在那里逃避应该包含的任何"

所以它也适用于id值内的转义引号,你可以使用它:

/id="([^"\\]*(?:\\.[^"\\]*)*)"/

http://www.rubular.com/r/b66eWno8Ce

答案 1 :(得分:0)

正则表达式会这样做:

id=\\\"(.+?)\\\"