我有一个像
这样的字符串 rule = ".radio-inline,\n.checkbox-inline {\n display: inline-block;\n}"
该字符串包含\n
等特殊字符。如何在{}
之前返回字符串的一部分?
对于上面的字符串,它应该返回".radio-inline,\n.checkbox-inline "
我试着用
Regexp.escape(rule).match(/(.*){/)[1]
问题是它返回:
"\\.radio\\-inline,\\n\\.checkbox\\-inline\\ \\"
答案 0 :(得分:1)
这应该这样做:
rule = ".radio-inline,\n.checkbox-inline {\n display: inline-block;\n}"
rule[/.*(?={)/m]
#=> ".radio-inline,\n.checkbox-inline "
.*
匹配行开头的零个或多个字符。默认情况下,它是贪婪的,它匹配尽可能多的字符。
(?={)
,一个积极的前瞻,要求角色{
立即跟随匹配的字符串,但它不是匹配的一部分。
m
规定匹配将在多行上进行。
这使用方法String#[]的形式,将正则表达式作为参数。
答案 1 :(得分:0)