Чтобы сопоставить имя файла с версией с начала - PullRequest
1 голос
/ 13 марта 2020

Вот регулярное выражение, которое соответствует всему от начала строки до (но не включая) первой точки:

^[^.]+

То есть:

string     | matched part
----------------------    
foo.txt    | foo
foo.tar.gz | foo

Мне нужно настроить его так, чтобы он включал в себя такие вещи, как «1.15» или «1.5.1». То есть:

string           | matched part
-------------------------------
foo_1.15.txt     | foo_1.15
foo_1.5.1.tar.gz | foo_1.5.1

Это как-то возможно?

1 Ответ

2 голосов
/ 13 марта 2020

Вы можете использовать:

^[^.]+[.0-9]*(?=\..+$)

См. Демонстрацию и пояснения

РЕДАКТИРОВАТЬ: Для соответствия aaa, aaa_1 , aaa_1.15 и aaa_1.15.20, Вы можете сделать \..+ part необязательным, что дает это регулярное выражение:

^[^.]+[.0-9]*(?=(?:\..+)?$)

См. Демонстрацию и объяснение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...