标签: bbcode

没有正则表达式的BBCode解析器?

我正在寻找Javascript或PHP中的BBCode解析器,而无需使用Regex.谁能建议我一个好人?

javascript php parsing bbcode

5
推荐指数
1
解决办法
705
查看次数

处理剧透BBcode Android

我正在为一个论坛开发一个应用程序.

我需要一个像Tapatalk那样的剧透按钮

在此输入图像描述

隐藏文本部分,仅在用户单击按钮时显示.

我收到了帖子的所有文字,包括剧透BBCode.我已设法通过以下正则表达式获取扰流板的内容:

\[SPOILER\](.+?)\[\/SPOILER\]
Run Code Online (Sandbox Code Playgroud)

我的问题是我想添加一个剧透按钮,但我的所有文本都是类似HTML的,因为每个对象(图像,链接,格式代码等等)都是用HTML翻译的,然后由Android用Html方法处理.fromHtml().

这是解析方法,将BBCode"转换"为HTML:

private static String parsePostContent(String text){
    String html = text;

    Map<String,String> bbMap = new HashMap<>();

    bbMap.put("(\r\n|\r|\n|\n\r)", "<br/>");
    bbMap.put("\\[b\\](.+?)\\[/b\\]", "<strong>$1</strong>");
    bbMap.put("\\[i\\](.+?)\\[/i\\]", "<span style='font-style:italic;'>$1</span>");
    bbMap.put("\\[u\\](.+?)\\[/u\\]", "<span style='text-decoration:underline;'>$1</span>");
    bbMap.put("\\[h1\\](.+?)\\[/h1\\]", "<h1>$1</h1>");
    bbMap.put("\\[h2\\](.+?)\\[/h2\\]", "<h2>$1</h2>");
    bbMap.put("\\[h3\\](.+?)\\[/h3\\]", "<h3>$1</h3>");
    bbMap.put("\\[h4\\](.+?)\\[/h4\\]", "<h4>$1</h4>");
    bbMap.put("\\[h5\\](.+?)\\[/h5\\]", "<h5>$1</h5>");
    bbMap.put("\\[h6\\](.+?)\\[/h6\\]", "<h6>$1</h6>");
    bbMap.put("\\[quote\\](.+?)\\[/quote\\]", "<blockquote>$1</blockquote>");
    bbMap.put("(?s)^\\[quote name=\"([^\"]+)\".*\\](.+)\\[\\/quote\\]", "<span style='font-style:italic;'>Citazione di: $1</span> <blockquote>$2</blockquote>");
    bbMap.put("\\[p\\](.+?)\\[/p\\]", "<p>$1</p>");
    bbMap.put("\\[p=(.+?),(.+?)\\](.+?)\\[/p\\]", "<p style='text-indent:$1px;line-height:$2%;'>$3</p>");
    bbMap.put("\\[center\\](.+?)\\[/center\\]", "<div align='center'>$1");
    bbMap.put("\\[align=(.+?)\\](.+?)\\[/align\\]", "<div align='$1'>$2");
    bbMap.put("\\[color=(.+?)\\](.+?)\\[/color\\]", "<span style='color:$1;'>$2</span>");
    bbMap.put("\\[size=(.+?)\\](.+?)\\[/size\\]", "<span style='font-size:$1;'>$2</span>");
    bbMap.put("\\[img\\](.+?)\\[/img\\]", "<img src='$1' />");
    bbMap.put("\\[img=(.+?),(.+?)\\](.+?)\\[/img\\]", "<img width='$1' …
Run Code Online (Sandbox Code Playgroud)

html regex android bbcode

5
推荐指数
1
解决办法
824
查看次数

如何从字符串中删除BB代码?

如何在字符串中获取所有BBcodes但保留内容?

例:

[B]This is bold[/B] and This is [color=#FFCCCC]colored[/color]
Run Code Online (Sandbox Code Playgroud)

将会 :

这是大胆的,这是有色的

php bbcode

4
推荐指数
1
解决办法
4529
查看次数

如何匹配JavaCC中的可选开/关标签?

什么JavaCC语法实现了可以解析这些行的语法:

[b]content[/b]
content[/b]
[b]content
Run Code Online (Sandbox Code Playgroud)

尽管JavaCC解析器需要解析所有行,但它必须区分正确和错误的标记行为.

正确的标签就像第一行,它们有一个打开和关闭的标签.当标签匹配时,这将输出粗体格式化文本.

不正确的标签就像第2行和第3行一样,它们没有匹配的打开或关闭标签.当这些发生时,它们按原样写入输出,不会被解释为标记.

我已经尝试过下面的JavaCC代码(LOOKAHEAD = 999999).问题是,这种语法总是将所有内容都匹配为invalidTag()而不是bold().如何确保JavaCC解析器尽可能匹配bold()

String parse() :
{}
{
    body() <EOF>
    { return buffer; }
}

void body() :
{}
{
    (content())*
}

void content() :
{}
{ 
    (text()|bold()|invalidTag)
}

void bold() :
{}
{
    { buffer += "<b>";  }
    <BOLDSTART>(content())*<BOLDEND>
    { buffer += "</b>"; }
}

void invalidTag() :
{
}
{
    <BOLDSTART> | <BOLDEND>
    { // todo: just output token
    }
} …
Run Code Online (Sandbox Code Playgroud)

java parsing javacc bbcode

4
推荐指数
1
解决办法
1283
查看次数

在PHP中删除BBCode标记及其内容

可能重复:
递归BBCode通过RegEx 解析
带BBCode

在PHP中删除字符串的所有BBCode标记及其内容的最佳方法是什么?

php regex bbcode preg-replace

4
推荐指数
1
解决办法
6768
查看次数

使用JavaScript/jQuery将BBcode转换为HTML

我能否帮助将一些PHP代码转换为jQuery/JavaScript?我想要的是一个简单的BBCode到HTML转换器.

这是PHP代码.我想用jQuery/JavaScript实现同样的功能.

$str = htmlentities($str);

// The array of regex patterns to look for
$format_search =  array(
    '#\[b\](.*?)\[/b\]#is',
    '#\[i\](.*?)\[/i\]#is',
    '#\[u\](.*?)\[/u\]#is',
);

// The matching array of strings to replace matches with
$format_replace = array(
    '<strong>$1</strong>',
    '<em>$1</em>',
    '<span style="text-decoration: underline;">$1</span>',
);

// Perform the actual conversion
$str = preg_replace($format_search, $format_replace, $str);
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

javascript jquery bbcode

4
推荐指数
1
解决办法
6629
查看次数

如何在首次出现时停止比赛?

我需要用Ruby正则表达式消化一些bbcode.

我必须match使用命令分隔元素并使用正则表达式/pattern/m来删除换行符.

例如,我在字符串中的bbcode是:

s="[b]Title[/b] \n Article text \n [b]references[/b]"
Run Code Online (Sandbox Code Playgroud)

然后我match用来分隔文本的部分,特别是包含在[b]和之间的Title和References部分[/b]:

t=s.match(/\[b\](.*)\[\/b\]/m)
Run Code Online (Sandbox Code Playgroud)

我使用(..)语法来捕获正则表达式中的字符串,我\用来逃避特殊[]字符./m是摆脱字符串中的换行符.

然后t[1]包含:

"Title[/b] \n Artucle text \n [b]references"
Run Code Online (Sandbox Code Playgroud)

而不是"Title".因为比赛并没有在第一次出现时停止[/b].t[2]由于同样的原因,它是nil而不是"References".

如何分隔通常的bbcode标签之间的文本部分?

ruby regex xml bbcode match

4
推荐指数
1
解决办法
2231
查看次数

复制SCEditor中的一些功能

在我目前的应用程序中,我创建了一个自定义BBCode编辑器 - 我使用了许多BBCode扩展,并且有其他集成要求,这使得我必须使用自己的编辑器而不是现成的编辑器.

创建这个,确保生成的BBCode始终有效,转换为良好的HTML等是很多工作,但我对结果非常满意.但是......事实上,我要求最终用户查看和编辑BBCode.拥有WYSIWYG会更好.我注意到SCEditor有一个WYSIWYG接口.借助Chrome优秀的调试器,我注意到以下内容

  • 隐藏原始文本区域
  • 插入包含iframe的div
  • iframe中的文档包含一个contenteditable div和一个隐藏的textarea控件

我可以继续我的探索,并弄清楚这一切是如何完成的.但是,我希望这里的某个人能够就这里需要的内容给我一些指示.我想,输入的BBCode以某种方式"转移"到隐藏的textarea中,动态解析为HTML,结果显示在内容可编辑的div中或沿着这些行显示的内容?还存在正确处理鼠标点击和选择的问题.

jquery bbcode contenteditable

4
推荐指数
1
解决办法
404
查看次数

将[b] xxx [/ b]替换为粗体'xxx'

如何转换[b]xxx[/b]<strong>xxx</strong>使用VB.NET Regex.Replace()?

谢谢.

regex vb.net string-formatting bbcode asp.net-3.5

3
推荐指数
2
解决办法
2873
查看次数

PECL bbcode包无法构建

我在Debian Squeeze上运行PHP5.3并且安装顺利.我使用dotdeb存储库升级到PHP5.4并发现bbcode函数不再有效.然后我尝试重新安装:

pecl uninstall bbcode
pecl install bbcode
Run Code Online (Sandbox Code Playgroud)

但它返回以下内容:

/tmp/pear/temp/bbcode/php_bbcode.c:38: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘bbcode_functions’
/tmp/pear/temp/bbcode/php_bbcode.c:65: error: ‘bbcode_functions’ undeclared here (not in a function)
make: *** [php_bbcode.lo] Error 1
Run Code Online (Sandbox Code Playgroud)

我已经安装了php5-dev,build-essential和ubuntu-dev-tools.完整结果如下:

# pecl install bbcode
downloading bbcode-1.0.2.tgz ...
Starting to download bbcode-1.0.2.tgz (46,961 bytes)
.............done: 46,961 bytes
7 source files, building
running: phpize
Configuring for:
PHP Api Version:         20100412
Zend Module Api No:      20100525
Zend Extension Api No:   220100525
building in /tmp/pear/temp/pear-build-root30VR7V/bbcode-1.0.2
running: /tmp/pear/temp/bbcode/configure
checking for …
Run Code Online (Sandbox Code Playgroud)

php debian pecl bbcode

3
推荐指数
1
解决办法
1677
查看次数