我需要一個正則表達式來從句子中的[
和]
之間獲取文本。使用正則表達式搜索文本
示例文本:
Hello World - Test[**This is my string**]. Good bye World.
所需的結果:
**This is my String**
,我想出正則表達式是Test\\[[a-zA-Z].+\\]
,但這返回整個**Test[This is my string]**
我需要一個正則表達式來從句子中的[
和]
之間獲取文本。使用正則表達式搜索文本
示例文本:
Hello World - Test[**This is my string**]. Good bye World.
所需的結果:
**This is my String**
,我想出正則表達式是Test\\[[a-zA-Z].+\\]
,但這返回整個**Test[This is my string]**
(?<=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
你可以使用一個捕獲組來訪問所關心的內容:使用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,蒂姆的解決方案更合適。
Match m = Regex.Match(@"Hello World - Test[This is my string]. Good bye World.",
@"Test\[([a-zA-Z].+)\]");
Console.WriteLine(m.Groups[1].Value);
謝謝...作品像一個魅力。 – Jakes