我想我知道下面在做什么,但不想做出任何假设以确保..
正则表达式是:
$value = preg_replace(array('/[^a-z0-9_ -]/', '/[ -]+/', '/^-|-$/'), array('', '-', ''), $str);
数组的第一部分很简单,除了 az、0-9、下划线、空格和连字符之外什么都没有。虽然空格后的连字符不应该被转义吗?
第二部分我不太确定......我认为它是说用一个连字符替换一个或多个空格或一个或多个连字符?我对吗?但是,再次避开连字符?
第三部分有点令人困惑......|
正则表达式中的字符不是OR
运算符吗?那么用什么替换连字符或连字符?如果|
被转义了,那么我会读取它,因为整个字符串需要匹配-|-
并将其替换为空?
最后......我的想法是否正确,它可以在获得它们的位置处理替换?所以它会首先处理数组中的第一个点,然后用字符串的剩余部分移动到第二个和第三个;因此,例如,如果第一个替换替换了某些东西,那么第二个替换将适用于字符串的修订版本?