Php 这个正则表达式到底做什么?

Php 这个正则表达式到底做什么?,php,regex,pcre,Php,Regex,Pcre,PHP代码是: $cleanedVer = preg_replace('/[^0-9,.,a-z,A-Z-]/','',$someVer); 它会清除版本设置,但有时会清除太多信息 我不确定这个正则表达式对上面代码段中的字符串做了什么。有人想解释一下吗?它删除了不是字母数字、点()、逗号(、)或连字符(-)的字符。它删除了不是字母数字、点()、逗号(、)或连字符(-)的字符。它也没有删除逗号@括号内的Mathletics有一个枚举(列表分隔符为,)。^在第一个列表元素中是什么意思?@AlexV

PHP代码是:

$cleanedVer = preg_replace('/[^0-9,.,a-z,A-Z-]/','',$someVer);
它会清除版本设置,但有时会清除太多信息


我不确定这个正则表达式对上面代码段中的字符串做了什么。有人想解释一下吗?

它删除了不是字母数字、点()、逗号(、)或连字符(-)的字符。

它删除了不是字母数字、点()、逗号(、)或连字符(-)的字符。

它也没有删除逗号@括号内的Mathletics有一个枚举(列表分隔符为,)。^在第一个列表元素中是什么意思?@AlexV inside
[]
字符的意思是“not”,因此正则表达式将匹配集合中未指定的任何字符。@AlexV no,只是不带逗号的“`”。逗号不是特殊字符,不应用作列表分隔符。[至少在此上下文中不是这样]原始正则表达式应缩减为
/[^0-9、.a-zA-Z-]/
,包含空格的正则表达式应为
/[^0-9、.a-zA-Z-]/
@AlexV是的。尽管如此,请将
-
放在character类的末尾,以确保不会把事情搞砸,因为它有特殊的含义。所以
/[^0-9.a-zA-Z-]/
(没有说它错了)。它也不会删除逗号@括号内的Mathletics有一个枚举(列表分隔符为,)。^在第一个列表元素中是什么意思?@AlexV inside
[]
字符的意思是“not”,因此正则表达式将匹配集合中未指定的任何字符。@AlexV no,只是不带逗号的“`”。逗号不是特殊字符,不应用作列表分隔符。[至少在此上下文中不是这样]原始正则表达式应缩减为
/[^0-9、.a-zA-Z-]/
,包含空格的正则表达式应为
/[^0-9、.a-zA-Z-]/
@AlexV是的。尽管如此,请将
-
放在character类的末尾,以确保不会把事情搞砸,因为它有特殊的含义。所以
/[^0-9.a-zA-Z-]/
(并不是说它错了)。