我遇到了正則表達式的問題。希望有人能幫助或指出正確的方向。基本上我必須驗證路徑結構。驗證以filename.xml結尾的路徑結構
有效輸入我的方法的規則是:
- (包括斜槓)出現一次時後/ usersname/
- 只能是一個的/ usersname/
- 發生開始的/ usersname /中必須只有一個[aphanumeric-_空間] .XML
因此,例如,以下是有效的輸入到我的方法:
/norrisc/thesf6457.xml
/norrisc/thess63-57.xml
/norrisc/thqsf64-57 gdhy.xml
/norrisc/ase45tg_3.xml
..和以下中*有效的輸入被*成方法:
/norrisc/anotherFolder/thesf6457.xml
/norrisc/norrisc/thess63-57.xml
/norrisc/norrisc/thess63-57.txt
/norrisc/norrisc/thess63-57
/norrisc/thqsf64-57 gdhy.xml/kjhfsd.xml
我的努力(無濟於事)至今都..
\b[/username/]{1}^[a-zA-Z0-9_\\s-]+$\.xml
^[/username/]{1}[a-zA-Z0-9_\\s-]+$\.xml{1}
\b/username/{1}[a-zA-Z0-9_\\s-]+$\.xml{1}
希望有人能幫助..?
感謝v多少
我不確定正則表達式在這裏是正確的選擇。你可以簡單地用'/'分隔符來分割你的字符串。如果有超過2個值或者第一個值不是用戶名或者最後一個值無效(不以xml結尾或包含無效字符),那麼您的輸入無效,否則它是有效的。 – halflings
我不知道@halflings,如果你很喜歡用這個正則表達式,我不認爲有一個*好*理由不會(我可能不會像這樣簡單的東西)。它肯定會像分割字符串一樣工作,所以它取決於個人偏好或與其餘代碼最適合的方式。如果他們已經使用正則表達式來驗證所有的東西,那麼正則表達式可能是最好的選擇。 – sgroves
是的。但很明顯,遵循「天真」的方法(使用令牌)會爲OP節省很多麻煩。此外,這將使他的代碼更易於維護。 (但這可能只是我的反正則表達式 - 無處不在的偏見) – halflings