gpt4 book ai didi

php - 在单个 php 中合并两个正则表达式

转载 作者:行者123 更新时间:2023-12-03 19:11:08 28 4
gpt4 key购买 nike

我需要知道是否有任何方法可以将两个正则表达式合并为一个正则表达式。最近我不得不编写以下 php 代码,但我觉得有一种无需使用 多个 preg_replace 标记即可实现此目的的简化方法。我想要做的是剥离   & © 等..并删除所有多个空格

$textinput = 'this is a test input       \'     """"""    """" @#$$%&*)_+!@#$%^&*)   123          456';

$var = preg_replace("/&#?[a-z0-9]{2,8};/i",'',$textinput)
$string = preg_replace('/\s+/', ' ', $var);

输出

this is a test input ' """""""""" @#$$%&*)_+!@#$%^&*) 123 456

我知道 php 中的 html_entity_decode 函数可以去除特殊字符,这只是一个例子! 如何将两个正则表达式合并为一个一个?

谢谢!

最佳答案

这将在一个有效的步骤中完成您的两个替换(不会丢失空白字符):

$replaced = preg_replace('~(?:&#?[a-z0-9]{2,8};)+|\s\K\s+~', '', $yourstring);

关于 the demo ,看看所有额外的字符是如何定位的。

解释

  • | 的左侧,(?:&#?[a-z0-9]{2,8};)+ 目标组,例如 ,不是一次一个,而是几个在一起,如果它们相互接触的话。
  • 在右侧,\s 匹配一个空格,然后 \K 告诉引擎将其从匹配中删除(不会被替换),然后 \s+ 匹配后面的任何空白字符
  • 我们用空字符串替换。

关于php - 在单个 php 中合并两个正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24583247/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com