Asp.net 任何介于[]之间的项的正则表达式
我需要找到[]的正则表达式 例如,如果字符串是-Hi[Stack],那么这里是我需要[Find]的[Tag] 它应该会回来Asp.net 任何介于[]之间的项的正则表达式,asp.net,regex,Asp.net,Regex,我需要找到[]的正则表达式 例如,如果字符串是-Hi[Stack],那么这里是我需要[Find]的[Tag] 它应该会回来 堆栈、标记、查找非常简单,您只需(1)用反斜杠转义括号,以及(2)使用(.*)捕获内容 \[(.*?)\] 括号是一个捕获组,它们捕获内容供以后使用。*后面的问号使匹配的非贪婪。这意味着它将匹配最短的匹配,而不是最长的匹配。当一行中有多个匹配项时,贪婪和非贪婪的区别就会出现: Hi [Stack], Here is my [Tag] which i need to [Fi
堆栈、标记、查找非常简单,您只需(1)用反斜杠转义括号,以及(2)使用
(.*)
捕获内容
\[(.*?)\]
括号是一个捕获组,它们捕获内容供以后使用。*
后面的问号使匹配的非贪婪。这意味着它将匹配最短的匹配,而不是最长的匹配。当一行中有多个匹配项时,贪婪和非贪婪的区别就会出现:
Hi [Stack], Here is my [Tag] which i need to [Find].
^______________________________________________^
贪婪匹配将在两组方括号之间找到最长的字符串。那是不对的。非贪婪匹配将找到最短的:
Hi [Stack], Here is my [Tag] which i need to [Find].
^_____^
无论如何,代码最终会:
应该有用。如果还需要包含特殊字符,则可能必须更改匹配组。取决于您所指的环境:
\[([^\]]+)]
.NET语法,考虑多个嵌入式括号:
\[(((?:\\.|)(?\[)|(?\])|[^\]])*((?(打开)(?!)))\]
这会计算
OPEN
中打开的[
节的数量,只有当OPEN
最后为0时才会成功。我遇到了类似的问题,并发现这也起到了作用
\[\w{1,}\]
\w表示元字符。这将匹配一个或多个单词字符
使用n{X,}量词匹配任何可以获得不同数量的字符串。故意省略第二个数字后,表达式表示要匹配1个或多个字符。在什么平台上?在什么编程语言中?asp.net。我使用的是Regex.IsMatch()是否存在嵌套匹配:
foo[bar[baz]]完成
您想在哪里抓取bar[baz]
?或者可能是foo[bar\\]baz]完成
您想在哪里抓取bar]baz
?[
和]
之间是否有新行?啊,.NET。。。这是一个Emacs正则表达式。:-)我认为即使在Emacs语法中,您也错过了一个]
。我冒昧地将其更改为与.NET兼容的。请注意,]
只需要在字符集内部转义,而不需要在字符集外部转义(尽管转义它不会有什么坏处…)。这比当前标记的答案更有效,因为它可以更好地控制以下内容:“Test[Test][Test[Test]”标记的答案将包括错误答案[在比赛中,而这个正则表达式不会。
\[([^\]]+)]
\[\w{1,}\]