使用正则表达式我试图删除空的bbcode标签。空的我在他们之间没有任何意义:
[tag][/tag]
如果他们之间有什么东西,那就应该保留。
我经常搜索并使用正则表达式测试器,但没有提出任何正常工作。
编辑:我现在意识到为什么我很难过。除了上面的例子,我也有一个像:
[url=http://www.somedomain.com/][/url]
我正在尝试在提交表单时清理bbcode,因此它不会被存储,因为它不需要。
答案 0 :(得分:0)
在Javascript中,你可以这样做:
str.replace(/\[([^\[\]]*)\]\[\/\1\]/g, '');
答案 1 :(得分:0)
在这种情况下正则表达式的操作方面是使用内部backrefs;我不确定,这是否得到普遍支持,但无论如何,.NET似乎都使用PCRE(这是真的吗?)。
然后,模式为[
,单词][/
,同一个单词]
。如果我们假设该单词的质量只是“不包含]
”,则匹配空标记的相应正则表达式为\[([^\]]+)\]\[/\1\]
,必要时在上下文中进行转义。
对于第二种情况,如果假设形式[tag=arg][/tag]
,并且该标记和arg每个都不包含任何']'
(不是一个合理的假设!但处理它是留下的练习读者 - 我很确定大多数bbcode实现实际上都没有解决这个问题,可以使用正则表达式\[([^\]=]+)(=[^\]]*)?\]\[/\1\]
。