(?: )表示只进行分组,不进行捕获[0-9a-zA-Z$_.`-] ——0-9、a-z、A-Z或$、_、.、`、-中的一个字符| ——表示或者[\xC2-\xDF][\x80-\xBF] ——用十六进制表示的字符范围【具体是什么字符不太清楚,比如汉字的范围一般是 4E00-9FA5】+ ——前面的字符有一个或多个(?: +) 外面的括号( )——是捕获括号。即不捕获单个匹配字符,只捕获匹配的最大字串。/is——是PHP中正则表达式模式修饰符,其中i代表 不区分大小写,s代表:如果设定了这个修正符,那么,被匹配的字符串将视为一行来看,包括换行符,换行符将被视为普通字符串。模式修饰符还有:m、x、e等 追问 $在什么情况下代表匹配字符串的结尾位置?python正则和PHP正则有没有区别?为什么$_.`-这五个符号直接输出,而不是像句号代表匹配除换行符 \n 之外的任何单字符?十分感谢~ 追答 1.$在[ ]外面表示行尾;2.php和Python正则表达式类似;3.[ ]中的特殊字符比较少,基本就5个[、]、\、^、-,最后两个还的看所在的位置,如果^不在中括号中第一个字符,它也没有特殊意义