[英]Regular expressions help
我正在嘗試在php中編寫一個正則表達式,以檢查以確保傳入的字符串是三件事之一,但是,我遇到了麻煩(我確實在使用正則表達式感到困難)。
我需要確保接收到的參數包含以下三項之一,並且沒有其他內容:
謝謝您的幫助(這對我來說一直是一個問題,認為我需要專門購買正則表達式的書)
preg_match('/^(?:\|(?:\d+\|)*)?$/', $input);
最簡單的方法是將其分為三個獨立的檢查:
strcmp($str,"|") == 0
) strlen($str) == 0
)。 /^[0-9\\|]+$/
通過嘗試將所有這些檢查都塞進一個正則表達式中,不要比需要做的難。 您的代碼將更容易理解,以后的代碼維護者將感謝您。
編輯:僅顯示我在說什么,這里是一些示例代碼:
if( strcmp($str,"|") == 0 ||
strlen($str) == 0 ||
preg_match('^[0-9\|]+$', $str) {
...
}
VS
if( preg_match('/^(?:\|(?:\d+\|)*)?$/', $str ) {
...
}
一目了然,如果$str
為空,哪個執行...
(^(\\ |)([0-9 \\ |] {0,})(\\ |)$)|(^(\\ |)$)|()
使用上面的正則表達式,如果沒有算術,則您的字符串無效,請檢查其合法性,然后嘗試檢查str_len($ string)> 0是否為空,然后檢查正則表達式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.