簡體   English   中英

Ruby regex:驗證unix文件路徑

[英]Ruby regex: validate unix file path

我想使用正則表達式驗證unix文件路徑。

我有\\A[0-9a-zA-Z\\_\\-\\/]+\\z

但是這仍然允許這樣的雙斜線this//is//allowed

如何確保不允許使用雙斜線?

編輯1

我想允許_, - ,字母數字值,只要它們形成有效的unix目錄路徑。 只是想確保//被禁止。 謝謝

您應該將斜杠移動到字符類之外,並使其成為可選項。 然后在字符類和斜杠組合上添加量詞,重復它們的組合1次或更多次:

\A(?:[0-9a-zA-Z_-]+\/?)+\z

請參閱http://rubular.com/r/77kvWAoI4e

(?:
  [0-9a-zA-Z_-]+   # Original character class without `/`. 
  \/?                # An optional slash (Because the string need not end with `/`
)+                   # 1 or more repetition of their combination

你不需要在正則表達式中逃避_ 而且-在角色類結束時使用。

最后,你的角色類可以減少到 - [\\w-] 所以,你的正則表達式可以簡化為:

\A(?:[\w-]+\/?)+\z

指定目標字符及其重復次數

/\\/{2}/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM