下一个正则表达式过滤一些html标签的style / src属性。
[(?i:s\\*c\\*r\\*i\\*p\\*t)]
[(?i:e\\*x\\*p\\*r\\*e\\*s\\*s\\*i\\*o\\*n)]
除了'修饰符跨度',
什么是“\\ *”?
这是否意味着s * c * r * i * p * t?那么,它对过滤有什么影响吗?
答案 0 :(得分:1)
在正则表达式中,\\*
表示0个或更多文字\字符。因此正则表达式正在寻找单词script
和expression
,可能在字母之间有任意数量的反斜杠,并且可能根本没有反斜杠。
一些匹配的例子:
s\c\r\\ipt
sc\\\\\ript
s\\\c\r\\\ip\\\t
script
正如 Qtax 指出的那样,语言在这里很重要。我不认识正则表达式语法,但有些需要反斜杠才能进行双重转义:一次用于主要语言,一次用于正则表达式引擎。这很难解释,但基本上它意味着模式可能只匹配以下两个输入,具体取决于编程语言:
s*c*r*i*p*t
e*x*p*r*e*s*s*i*o*n
答案 1 :(得分:0)
通常,正则表达式中的\字符会转义特殊字符以抑制它们的特殊含义。实际上它将等于\ n而不是换行符。
这很简单!
只是为了添加答案,相关字符将解析为s \ * c \ * r \ * i \ * p \ * t