如何匹配组合单词/ /,/ dev / home / hello-world等数字的语句

时间:2017-12-08 09:45:27

标签: regex

我希望在正则表达式中匹配以下语句:

/
/dev/shm
/var/lib/snap/hello-world/27

任何想法? 这是我的最后一次尝试:

\/((\w+)|(\/\w+-\w+))+

但看起来,破折号陈述就像是一个单独的部分。

3 个答案:

答案 0 :(得分:1)

您可以使用否定字符类来使用此正则表达式:

^\/(?:[^/]*\/)*.*$

RegEx Demo

RegEx分手:

  • ^:开始
  • \/:匹配文字/
  • (?:[^/]*\/)*:匹配0个或更多组非斜杠字符串后跟/
  • * : Match anything after last /`
  • $:结束

答案 1 :(得分:0)

如果你是一个积极的人并且不想使用否定类(如@anubhava所提议的那样),你可以检查这个完全正面的正则表达式:

^(?:(?:\/)|(?:\/\w+)|(?:\/\w+-\w+))+$

RegEx Demo

答案 2 :(得分:0)

谢谢大家。你的所有答案都有效。但我找到了一个简单的方法:

(\/([\w\d\-\/])*)

RegEx Demo