长篇小说需要整理每集人物名称并按照出场顺序排列输出
剧本和最终要的人物出场顺序大体上是这样的:
[infobox title=”我需要把人名的部分正则匹配出来”]煜宝(心声):(呼吸急促)一定……一定不能再被他们抓回去!
(然而前方已经没有路了。在突然的一道惊雷中,他停止了奔跑。赫然出现在眼前的,
是一个悬崖)
煜宝:(停止奔跑)啊,落魂崖!(迅速回头,然而包围圈已经形成)
女一:哟,怎么停下来了,你倒是接着跑呀(得意)。(忽而咬牙)两次都在我眼皮
子底下跑了,你真是挺能耐啊。(讽刺,愤恨)
男一:煜宝,跟我们回去吧,你逃不掉的。(带着威胁的语气)
煜宝:我是不会再跟你们回去的![/infobox]
正则表达式如下:
$zz = '/\n(.*?):/iU';
匹配的时候发现,有的人名后面附带个括号 (心声) ,就很烦
这样的话就要先重新正则一哈,把所有括号内的文字弄掉
这里我用的是正则查找替换:
$str = preg_replace('/(.*?)/', '', $data['wz']);
然后就是foreach遍历掉重复的人物名
直接附上完整的php代码吧!
$data = $request->only(['wz']); $str = preg_replace('/(.*?)/', '', $data['wz']); $zz = '/\n(.*?):/iU'; preg_match_all($zz, $str, $matches); $name = array(); foreach ($matches[1] as $key => $value) { if (!in_array($value, $name)) { $name[] = $value; } } $pjname = implode(' , ', $name); return $pjname;
顺便吐槽一句…铺页面真的好累啊…
每次都是敲代码两分钟,铺页面一小时的那种…
但是一个好看的UI真的很重要
附上成品Demo演示页面
PS:本人小白,只是记录一下自己做过的东西,大佬们嘴下留情..
如果对我的代码有比较好的建议欢迎指正! :huaji4:
3 Comments
吊啊
@KIENG 基本的
阿萨帝