stackoverflow像解析器正则表达式?php中的_em_*bold*

Ada*_*han 3 php regex

你好我在php中创建一个解析器,你可以在下面看到它转换

*this* _this_要像这样 这样

$db['profile']['information'] = str_replace( "\n" , "<br/>" , $db['profile']['information']);
$db['profile']['information'] = preg_replace('/\*([^\*]+)\*/', '<strong>\1</strong>', $db['profile']['information']);
$db['profile']['information'] = preg_replace('/_([^[_]+)_/', '<em>\1</em>', $db['profile']['information']);
$db['profile']['information'] = preg_replace('/\[img\]((?:[^\[]+|\[(?!img\]))*)\[img\]/', '<img src="\1" />', $db['profile']['information']);
Run Code Online (Sandbox Code Playgroud)

问题出在img上.

例如,我有一个网址,[img]123_460217980773_23232_11_*23123*_n.jpg[img]你知道它会解析什么.它的史诗.任何人都可以帮我解决吗?

谢谢你的时间

亚当拉马丹

Kos*_*Kos 7

正则表达式虽然在许多情况下确实很有用,但绝对不是手动解析结构化文本语言的正确工具,而Markdown可以算作其中之一.

如果您想使用与StackOverflow相同的语法,请使用像这样的Markdown解析器.

  • 虽然关于正则表达式的答案不是正确的工具通常是正确的,但这个答案是误导性的,因为PHP Markdown解析器确实*确实使用正则表达式来完成此任务.这是因为原始解析器是用Perl编写的,并且与原始实现的兼容性更为重要,因为诸如showdown.js之类的端口保留正则表达式而不是重写它们自己的解析器. (3认同)