[英]PHP regex - what am I doing wrong now in this case?
使用正則表達式:
$pattern = "/adminvalues = \"\([^']+, '[^']+', MD5\('[^']+'\), '[^']+','[^']+','[^']+',[^']+,[^']+\)\";/";
preg_match($pattern, $data, $results);
print_r($results);
搜索以下文本(括號內的值可能會發生變化,因此需要正則表達式...):
adminvalues = "(NULL, 'Admin12345', 'MD5(Admin12345)', 'Admin12345', 'Admin12345', 5, 0, 0)";
因此,我正在尋找一種模式(在reg-ex中),該模式基本上與以下各項(我認為...)匹配:
[adminvalues = "(] [any character] [, '] [any character] [', MD5('] [any character] ['), '] [any character] [', '] [any character] [', ] [any character] [, ] [any character] [, ] [any character] [)";]
其中: 任何字符都是(字母/數字/符號)的任意組合中的一個或多個
使用頂部的PHP代碼沒有找到任何匹配項-所以我顯然做錯了! 我只是無法自己發現錯誤。 (我真的只是今天早上才開始使用正則表達式...)我做錯了什么? :)
解決:(感謝Amal Murali)在讀取用作$data
的php腳本時使用htmlspecialchars()(而不僅僅是顯示內容)
嘗試以下正則表達式:
$pattern = <<<PATTERN
~
adminvalues\s*=\s*
"
\(
[^,]+,\s*
'[^']+',\s*
MD5\('[^']+'\),\s*
'[^']+',\s*
'[^']+',\s*
\d,\s*
\d,\s*
\d\s*
\)
";
~xm
PATTERN;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.