Regex для Linux пути монтирования для проверки правильности ввода пользователем пути в скрипте java - PullRequest
1 голос
/ 29 апреля 2020

У меня есть поле ввода для Linux пути монтирования в моей форме Мне нужно регулярное выражение для проверки следующих случаев:

Не разрешать пользователю вводить

/, /bin, /dev, /etc, /mnt, /opt, /run,/srv, /sys, /tmp, /usr, /var, /lib,  /proc, /sbin, /root, /boot, /home,  /lib64, /media, /opt/folde r, /opt/folder/, /usr/bin, /usr/lib, /usr/lib64, /usr/sbin

Должен позволить пользователю вводить

/opt/folder, /var/folder, /tmp/folder
/bin/foldername, /boot/foldername, /devfoldername, /etc/foldername, /home/foldername, /lib/foldername, /lib64/foldername, /media/foldername, /mnt/foldername, /opt/foldername, /proc/foldername, /root/foldername, /run/foldername, /sbin/foldername, /srv/foldername, /sys/foldername, /tmp/foldername, /usr/foldername, /var/foldername

Я согласен с этим: ^(.+)\/([^/\s]+)$

но это работает для отрицательного случая, как показано ниже:

/, /bin, /dev, /etc, /mnt, /opt, /run,/srv, /sys, /tmp, /usr, /var, /lib,  /proc, /sbin, /root, /boot, /home,  /lib64, /media, /opt/folde r, /opt/folder/

для положительного случая, как показано ниже:

/bin/foldername, /boot/foldername, /devfoldername, /etc/foldername, /home/foldername, /lib/foldername, /lib64/foldername, /media/foldername, /mnt/foldername, /opt/foldername, /proc/foldername, /root/foldername, /run/foldername, /sbin/foldername, /srv/foldername, /sys/foldername, /tmp/foldername, /usr/foldername, /var/foldername

пожалуйста, кто-нибудь может мне помочь, спасибо

1 Ответ

1 голос
/ 29 апреля 2020

Попробуйте с этим регулярным выражением: ^(\/[a-zA-Z0-9_-]+){2,}$(?<!^(\/usr\/bin)|(\/usr\/lib)|(\/usr\/lib64)|(\/usr\/sbin)$)

Смотрите демо здесь

...