vbs regex: сопоставить текст ТОЛЬКО с ПЕРВЫМИ 2 подчеркиваниями - PullRequest
2 голосов
/ 25 мая 2011

Я делаю очистку имени файла с VBS, если имя файла называлось

hello_world_2012_is_not the end of the world.pdf

тогда регулярное выражение должно соответствовать слову "мир", а ничего больше .

Я пробовал это:

[_][^_]+(?=_)

но он получает все, что находится между двумя подчеркиваниями. Как выбрать только первое вхождение?

Ответы [ 2 ]

4 голосов
/ 25 мая 2011

Я предлагаю следующее регулярное выражение:

/^[^_]*_([^_]*)_/

Объяснение:

^        # Anchor the search to the start of the string
[^_]*    # Match any number of non-underscores, don't capture them
_        # Match the first underscore
([^_]*)  # Match any number of non-underscores, do capture them
_        # Match the second underscore.

Тогда первая группа захвата ($1) будет содержать world и регулярное выражение выигралоне совпадает нигде в строке.

4 голосов
/ 25 мая 2011

Само регулярное выражение должно выглядеть примерно так:

_([^_]*)_

Строка фиксируется в группе 1.

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

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