如何解析bbcode正则表达式



我很难找到正则表达式。我想解析除bbcode[code]中的所有微笑。

例如:

[code] :D  :D  :D  :D  [/code] 
 :D :D :D 

我的正则表达式必须匹配bbcode中的三个:D。

我尝试了([code](.*?)[/code])来匹配bbcode。

但除了这个街区,我不知道该怎么办。我在谷歌上找到了如何用(^([code](.*?)[/code])*破例但不起作用。。。。

所以我的第一个问题是:如何匹配所有看起来像:D的笑脸?除了正则表达式中的一个组(bbcode)之外,如何处理?

感谢您的帮助

我认为这应该对你有用。

(:D)(?=[sS]*?[code][sS]*?[/code]+|(?![sS]*?[/code]))

将所有:D的外部代码标记转换为链接的示例实现:

document.getElementById('tekt').value = document.getElementById('tekt').value.replace(/(:D)(?=[sS]*?[code][sS]*?[/code]+|(?![sS]*?[/code]))/igm,"");

JSFiddle演示。

我每个人,我在构造正则表达式时遇到了一些问题。现在我需要匹配除了<code></code><img /> 之间的所有看起来像:D的笑脸

我不理解群体中的例外概念。我找到了(?!条)。*

正则表达式:

(:D)(?=[sS]*?<code>[sS]*?</code>+|(?![sS]*?</code>))|(<img (?!:D).+ />)

测试模板

   :D :D :D
[quote="toto"]:D  :D  :D  :D  :D  :D  :D [/quote]
[spoiler="ygfdhy :D  :D  :D  :D "] :D  :D  :D  :D  :D  :D  :D [/spoiler]
[hide] :D  :D  :D  :D  :D  :D  :D [/hide]
<code>  :D  :D  :D  :D  :D  :D  :D </code>
<code>  :D  :D  :D  :D  :D  :D  :D </code>
<img src="#" data-sceditor-emoticon=":D" alt=":D" title=":D" /> 
<img src=#" data-sceditor-emoticon=":D" alt=":D" title=":D" /> 

Regex101

我有两个问题:

  • 我在img标签中找不到匹配的smilley
  • 我不是唯一的对手

感谢您的耐心和专业知识

最新更新