Поиск текста с помощью Regex - PullRequest
       3

Поиск текста с помощью Regex

2 голосов
/ 31 октября 2011

Мне нужно регулярное выражение для вывода текста между [ и ] внутри предложения.

Пример текста:

Hello World - Test[**This is my string**]. Good bye World.

Желаемый результат:

**This is my String**

Регулярное выражение, с которым я пришел, - Test\\[[a-zA-Z].+\\], но это возвращает все **Test[This is my string]**

Ответы [ 3 ]

2 голосов
/ 31 октября 2011

Вы можете использовать группу захвата для доступа к интересующему тексту:

\[([^]]+)\]

Быстрое подтверждение концепции с использованием JavaScript:

var text = 'Hello World - Test[This is my string]. Good bye World.'
var match = /\[([^\]]+)\]/.exec(text)
if (match) {
  console.log(match[1]) // "This is my string"
}

Если используемый вами механизм регулярных выражений поддерживает lookahead и lookbehind , решение Тима будет более подходящим.

2 голосов
/ 31 октября 2011
Match m = Regex.Match(@"Hello World - Test[This is my string]. Good bye World.", 
            @"Test\[([a-zA-Z].+)\]");
Console.WriteLine(m.Groups[1].Value);
1 голос
/ 31 октября 2011
(?<=Test\[)[^\[\]]*(?=\])

должен делать то, что вы хотите.

(?<=Test\[) # Assert that "Test[" can be matched before the current position
[^\[\]]*    # Match any number of characters except brackets
(?=\])      # Assert that "]" can be matched after the current position

Читайте о дополнительных утверждениях .

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