/\/\*[ \t]*\./ /import/i /[ \t\w\/\.\=\-;\[\]\$>"']+\*\/[ \t]*[\n\r]{1,2}/
在上面的正则表达式中,我不知道[ \t\w\/\.\=\-;\[\]\$>"']+
的含义
它将处理哪种类型的数据语法
任何人都可以用示例数据向我解释一下吗?
答案 0 :(得分:4)
您的角色位于Character Class内,这意味着......
[ \t\w\/\.\=\-;\[\]\$>"']+
任何角色:
' '
,\t
(标签)a-z
,A-Z
,0-9
,_
)\/
,\.
,\=
,\-
,;
,\[
,\]
,\$
,>
,"
,'
1
或更多次)在正则表达式中,字面解释而不是元字符的字符可以通过在它们前面加上反斜杠符号(\
)来转义。因此,如果要将这些字符中的任何一个用作正则表达式中的文字,则需要使用反斜杠对它们进行转义。
对于 PCRE 以及大多数其他与Perl兼容的版本,请在字符类中转义:
^]\-
在角色类之外逃避这些:
^.*+?$|()[{\
注意:如果连字符被认为是字符类内部的第一个或最后字符,则不一定需要进行转义。< / p>
基本上,这可以简化为以下内容。
[ \t\w\/.=;[\]$>"'-]+
答案 1 :(得分:0)
逃避角色意味着不使用其共同角色,而是使用其特殊角色(如果有角色)。 例如,字母“w”的共同角色是字符类内部或外部的简单字符“w”。 如果字符“w”通过在其前面放置\字符来转义,则\ w将具有特殊角色,并且表示字符类内部或外部的任何“单词”字符(字母,数字和_字符)。 字符“]”的共同角色不是简单字符“]”,但它具有结束字符类的作用。 如果通过在它之前放置一个\来转义字符“]”,那么]将具有一个特殊的角色,这意味着这一次在字符类内部或外部是一个简单的“]”字符。
在字符类之外,某些字符如“$”,“*”,“?”,“+”比其简单字符值具有另一个角色,因此当您要指定加号符号时,您需要使用+来逃避它,因为否则它的共同作用将是“前一个字符一次或多次”。 但是,在字符类中,某些字符始终用作公共字符,因此不需要对其进行转义。例如,您不需要使用\ = * + \?在一个字符类中,但只有= * +? 在一个字符类中,你需要转义一些字符,如“]”,否则它将意味着字符类的结束。 您还需要转义字符“ - ”,否则它不会被视为简单的破折号,但它会在前一个和下一个字符之间创建一个范围。 另一种方法是始终将“ - ”字符作为字符类中的第一个或最后一个字符,在这种情况下,它不需要进行转义。
它可能看起来很复杂,但事实并非如此。 你需要逻辑思考。如果你在字符类中出现时没有转义“+”字符会发生什么?是否意味着前一个角色可能出现一次或多次?它在字符类中没有任何意义,所以你不需要逃避它。 “=”字符在内部或字符类之外没有任何特殊角色,因此您也不需要将其转义。 简单的点“。”除了使用/ s修饰符之外,字符类外部意味着任何字符但不是\ n,但在字符类中,它的常见含义是充当简单的点(。),因此您也不需要转义它。 这些并不是关于所有角色的共同和特殊含义的所有细节,但我仅仅作为示例来展示逃避的含义。