這個正則表達式意思?
preg_match("/^obj(\d+)\-{0,1}(|mi\d{0,1}|critical|questionText|answerText\-{0,1}\d+)$/", $k, $a)
所述的preg_match是一個PHP函數,應轉化它
這個正則表達式意思?
preg_match("/^obj(\d+)\-{0,1}(|mi\d{0,1}|critical|questionText|answerText\-{0,1}\d+)$/", $k, $a)
所述的preg_match是一個PHP函數,應轉化它
這種表達,評論看起來像
^ // start of line
obj // literal obj
(\d+) // one or more digits (0-9), captured in a group
-{0,1} // optional dash
( // start second capturing group
// nothing
| // ... OR ...
mi\d{0,1} // literal mi, followed by an optional digit
| // ... OR ...
critical // literal critical
| // ... OR ...
questionText // literal questionText
| // ... OR ...
answerText // literal answerText
-{0,1} // optional dash
\d+ // one or more digits (0-9)
) // end of capturing group
$ // end of line
的是什麼一個例子比賽將是
obj1000-critical
或obj1000answerText-100
^obj(\d+)-{0,1}
意味着該字符串是一個行的開始,並用obj
開始,接着是數至少1位的,則有可能是-
標誌。
(|mi\d{0,1}|critical|questionText|answerText-{0,1}\d+)
意味着該文本是下列之一:
mi
這可能是後面跟着一個數字critical
questionText
answerText
可隨後一個-
符號,之後至少有一位數字然後就是行結束了。搜索區分大小寫。
IT將匹配以OBJ開頭的字符串,然後是NUMER,可選的破折號,隨後要麼
實例:
它一定的格式相匹配包含的行,f或例如:
obj1-mi5
obj2critical
obj3-questionText
obj4answerText-0
這些模式是否看起來很熟悉?
preg_match
將在$k
中找到該模式並在$a
中存儲匹配項。執行以下操作以查看它找到的內容。
print_r($a);
我首先建議找到一個正則表達式教程,並閱讀它們的結構。這不是一個特別複雜的正則表達式,所以你應該可以通過一些書本來解決它,這意味着你不必再問你遇到的下一個正則表達式。 ;-)
什麼手段正則表達式細分如下:
^ - 字符串開始處匹配。
OBJ - 這是文字文本,以便將在串
(\ d +)的開頭相匹配那些字符 - 這將匹配一個或多個數字(0-9)和托架將意味着它們被捕獲的方式可以在解析後使用。
- {0,1} - 這將匹配0或1「 - 」字符。
(| mi \ d {0,1} | critical | questionText | answerText- {0,1} \ d +) - 括號將再次將其捕獲爲一個組。 「|」用作「或」,因此它將匹配任何分隔值。雖然我不確定我認爲它是以「|」開頭的事實可能意味着它會匹配一個空字符串。
mi \ d {0,1} - 匹配miteral字符串mi,後跟0或1個數字。
關鍵,questionText - 這是完全相符的文字,無論文字選項
answerText- {0,1} \ d + - 這將匹配的文本字符串answerText跟着一個可選的 「 - 」和一個或多個數字。
$ - 該字符串必須在上一次匹配後立即結束。
我希望對你有意義。正如我所說,如果您需要更多幫助,請查看一些教程和文檔。 :)