Hello试图为模式编写一个正则表达式: anything.anything
因此,模式需要从正方形大括号开始,然后可以包含任何东西(a-z位数、下划线、空格和破折号),后面是结束方括号,后面是圆点,后面是另一组方括号,里面有任何东西。
到目前为止,这就是我所拥有的:
(\\[)((?:[a-z][a-z]+)).*?(\\])(\\.)(\\[)((?:[a-z][a-z]+)).*?(\\])
它适用于something.anything,但也适用于某些东西。[任何<--不应该匹配(必须以方括号结尾)也适用于某些东西。<--不应该匹配
如有任何帮助,将不胜感激。
编辑:
string pattern = @"\[[^\]]*\]\.\[[^\]]*\]";
foreach (Match match in Regex.Matches(haystack, pattern,RegexOptions.IgnoreCase | RegexOptions.Singleline |RegexOptions.Multiline))
{
do some stuff
}
发布于 2013-12-03 09:40:29
我设法让
\[[a-z0-9\s_-]*\]\.\[[a-z0-9\s_-]*\]
虽然我肯定会有一些例外,但似乎对我尝试过的每件事都很有效,这就是正则表达式!
编辑:
我可能会使用它,因为它不匹配跨行,而且不那么贪婪(贪婪会导致它跨越多个项目,这是不可取的)
\[[a-zA-Z0-9 -_]*?\]\.\[[a-zA-Z0-9 -_]*?\]
发布于 2013-12-03 09:36:34
您可以使用这个regexp来避免回溯。
@"\[[^\]]*\]\.\[[^\]]*\]"
表达式由两个由点\.
子表达式分隔的相同子表达式组成,如下所示:
\[
-一个开口的方括号,[^\]]*
-除结束方括号外的任何字符序列,\]
-关闭方括号。https://stackoverflow.com/questions/20357788
复制相似问题