一个简单的正则匹配 剧本人物出场顺序提取

长篇小说需要整理每集人物名称并按照出场顺序排列输出
剧本和最终要的人物出场顺序大体上是这样的:
一个简单的正则匹配 剧本人物出场顺序提取

[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:

文章来源于互联网:一个简单的正则匹配 剧本人物出场顺序提取

© 版权声明
THE END
喜欢就支持以下吧
点赞0
分享
评论 抢沙发