這可能是愚蠢的問題,但有人可以否定這個正則表達式對我來說?正則表達式否定xml元素名稱
$reg = '/^(?!XML)[a-z][\w0-9-]*$/i';
我試過[^ ...]但不是真的有效,或者我只是做錯了。 在此先感謝!
這可能是愚蠢的問題,但有人可以否定這個正則表達式對我來說?正則表達式否定xml元素名稱
$reg = '/^(?!XML)[a-z][\w0-9-]*$/i';
我試過[^ ...]但不是真的有效,或者我只是做錯了。 在此先感謝!
[^...]
語法僅適用於字符類。在角色等級之外,^
在該行的開始處聲明位置。它不能用來否定正則表達式本身。你能做到什麼,而不是,是用PHP代碼做了否定:if(!preg_match(...))
$reg = '/^(?!XML)[a-z][\w0-9-]*$/i';
if(!preg_match($reg, $stuff)) {
# code...
}
但是,如果你要與XML/HTML工作,那麼正則表達式是不是可能是最好的辦法。 改爲使用XML解析器。這樣,當標記的格式發生變化時,您可以確定您的代碼不會中斷。
我也建議你使用'\ A'和'\ z',而不是'^'和'$'。 **'$'可能包含LF ** – mpyw
我注意到'[\ w0-9-]'等於'[\ w-]'。 – mpyw