草庐IT

preg-match-all

全部标签

php - 如何使用 preg_replace 去除过多的单个空格

我们正在从PDF文件中提取文本,结果中包含格式错误文本的频率很高。特别是在单词的字符之间添加空格。例如SEATTLE返回为SEATTLE。是否有preg_replace的RegEx表达式可以在n个单字符“单词”的情况下删除任何空格?具体来说,从超过3个单个字母字符且由空格分隔的字符串中删除空格?如果在谷歌上搜索了一段时间,但甚至无法想象如何构建表达式。如评论中所述,我不希望删除所有空格,但仅当出现>3个单个字母字符时才删除,例如WelcometotheGreaterSEATTLEarea应该变成WelcometotheGreaterSEATTLEarea。结果将用于全文搜索,因此不区分

php - preg_match 从字符串返回多个值

我想从一些URL中提取两个值。示例网址:cricket-ck-game-playhand-ball-hb-game-playvolley-ball-vb-game-playsoccer-sc-game-play我想分别提取完整游戏名称及其短名称,忽略URL末尾的-game-play部分。我尝试了以下代码,它返回“ck”、“hb”、“vb”、“sc”,但不返回全名。preg_match("/(?我得到的实际结果:array(1){[0]=>string(2)"ck"}预期结果:case:1(Incaseofexample1)-array(2){[0]=>string(7)"cricket

php - filter_var 与 preg_match

早上好我正在转换我正在处理的网站以与最新版本的PHP兼容,因此我正在检查并用未折旧的等效项替换所有ereg实例。然而,有人告诉我有一个名为filter_var的方便的PHP内置函数。我的问题是,使用filter_var而不是preg_match是否有意义?至于选择一个而不是另一个是否有性能提升或任何其他好处,如果有的话,它们是什么? 最佳答案 首先,关于过滤的PHP手册页:https://php.net/manual/en/book.filter.php其次,上下文是关键。一般来说,过滤器函数被设计为使用外部输入(标量或数组),或内

PHP PREG 正则表达式 : What does "\W" mean when using the UTF-8 modifier?

我知道正常phpregex(ASCII模式)“\w”(单词)表示“字母、数字和_”。但是,当您将多字节正则表达式与the"u"modifier一起使用时,这意味着什么??preg_replace('/\W/u','',$string); 最佳答案 任何不是字母、数字或下划线的内容。因此,就Unicode字符类而言,\W等同于不在L或N字符类中且不是下划线字符的每个字符。如果您使用\p{xx}编写它语法,它将等同于[^\p{LN}_]。 关于PHPPREG正则表达式:Whatdoes"\W

php - "do it all"页面结构和注意事项?

我仍未接触PHP(我的第一语言),并且我已经达到了可以编写一个页面来处理各种不同相关请求的能力水平。它们通常具有如下结构:(伪代码)//snip//snip一切都很好,而且速度很快,这很酷。但我仍然在黑暗中摸索着自己的路……并希望专业人士提供一些关于此类页面设计的意见……这是一个好的长期结构吗?(看起来很容易展开……)此设计是否存在特定的安全风险?我应该避免画自己的角落吗?只是好奇future会发生什么,真的...... 最佳答案 这种设计是初学者在前进一点时会去的地方。我以同样的方式让index.php成为一个大的SWITCH语句

php - 提取字符串中的每一次出现

我有一个形式为"a-b""c-d""e-f"...的字符串使用preg_match,我如何提取它们并获得一个数组:Array([0]=>a-b[1]=>c-d[2]=>e-f...[n-times]=>xx-zz)谢谢 最佳答案 你可以这样做:$str='"a-b""c-d""e-f"';if(preg_match_all('/"(.*?)"/',$str,$m)){var_dump($m[1]);}输出:array(3){[0]=>string(3)"a-b"[1]=>string(3)"c-d"[2]=>string(3)"e-

regex - 用 php preg_replace 只替换一次字符串

我需要一个replacestringonce函数,我相信preg_match可能是我最好的选择。我正在使用这个,但由于使用的动态性,有时这个函数表现得很奇怪:functionstr_replace_once($remove,$replace,$string){$pos=strpos($string,$remove);if($pos===false){//Nothingfoundreturn$string;}returnsubstr_replace($string,$replace,$pos,strlen($remove));}现在我正在采用这种方法,但遇到了下面列出的错误...。我正在

PHP preg_replace 使正则表达式可选?

我有一些内容正在尝试解析...我有html,在html中我想用自定义字符串替换我所有的img标签。现在我遇到的问题之一是出现了一些内容:图像标签位于anchor之间。例如下面的代码我有工作......但我希望它是可选的,所以如果没有anchor标记被img标记包围,有没有人有任何关于正则表达式的好资源或者可以帮助我?谢谢!$content=preg_replace('#'.$image_tag.'#i',"{$image_id}",$content); 最佳答案 token后的问号使该token可选。使用(?...)对多个标记进行分

php - preg_replace 正则表达式问题

我正在尝试清理一个字符串。我只需要允许大写/小写字母数字空格、制表符、回车符这些字符:_-+*()[]!#?.,;:'"其他一切都需要告别。我该怎么做?我有这个,它适用于大写/小写字母、数字和空格。但是不知道制表符、回车、特殊字符怎么算?$str=preg_replace('/[^a-z0-9]/i','',$str); 最佳答案 尝试$str=preg_replace('/[^\w\r\n\t+*()[\]!#?.\,;:\'"-]/','',$str); 关于php-preg_rep

php - preg_replace 有两个替换

例如我在数据库中有一句话:His$name$is$Luis$现在,我想替换标签()中的$..$,例如:HisnameisLuis我怎样才能用preg_replace做到这一点?我试着简单地做:$replace[0]='';$replace[1]='';preg_replace('/[$]/',$replace,$string);但不起作用。 最佳答案 preg_replace('/\$(.*?)\$/','\1',$string); 关于php-preg_replace有两个替换,我们在