2014-05-05 2 views
-1

Я хочу совместить имя и кол-во файлов без скобок.Regex - Filename может содержать группу скобок

Например:

8680733046449.png

8680733046449 (3) .png

эти файлы с тем же именем. Я хочу отделить второе имя файла (8680733046449) и количество файлов (3) (без скобок).

Если имя файла не содержит каких-либо скобок, они просто соответствуют имени.

Мои регулярные выражения:

/^(.*)\s?\((\d+)\)\.png$/ 

Это регулярное выражение сопоставления файлов, имеет круглые скобки но без.

Тест здесь: http://www.regexr.com/38pup

+0

'^ (. *?) (?: \ S? \ ((\ D +) \))? \ .png $' –

+0

Голосов? Почему: D Иногда я действительно не понимаю вас, ребята ... –

ответ

1

Вы должны использовать не жадный квантор для имени части. В противном случае он будет соответствовать пробелу и скобкам. Вам также необходимо сделать деталь в круглых скобках необязательной.

/^(.*?)\s?(\((\d+)\))?\.png$/ 
    ^
+0

Не работает ... Не соответствует основному файлу без скобок. –

+0

ОК, попробуйте сейчас, я сделал часть в скобках опциональной. – Barmar

+0

мой плохой. он работает, спасибо! –

0

Если я понял, вам хорошо, я думаю, что это будет работать для вас:

^(.+)(\s?\((\d+)\))?\.png$ 

Обратите внимание, что я изменил * после первой точки, чтобы избежать пустых имен файлов.

С уважением.

+0

соответствует только имени файла ... (первый без скобок) –

+1

Почему вы используете квадратные скобки? Это просто соответствует одному символу. – Barmar

+0

Спасибо @ Бармар, я был неправ. Я собираюсь отредактировать ответ. – Airam

Смежные вопросы