当前位置:  开发笔记 > 编程语言 > 正文

字符串分隔的正则表达式

如何解决《字符串分隔的正则表达式》经验,为你挑选了1个好方法。

我正在尝试构建一个bbcode解析器,但是我在解决如何避免过于广泛匹配时遇到了一些问题.例如,我想实现[list]转换为这样的转换:

\[list\](.*)\[/list\]

将被替换为:

    $1

这工作正常,除非我有两个列表,其中正则表达式匹配第一个列表的开始标记和第二个列表的结束标记.所以这

[list]list1[/list] [list]list2[/list]

成为这个:

    list1[/list] [list]list2

这会产生非常难看的输出.有关如何解决此问题的任何想法?



1> Chad Birch..:

您正在使用的方法可能不会成为一种特别好的方法,但要解决该特定问题,只需更改为非贪婪匹配:

\[list\](.*?)\[\/list\]

请注意,这种方式会遇到嵌套列表而不是背靠背列表的问题.

推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有