如何处理正则表达式中的可选空格以准确提取数据?

Susan Sarandon
发布: 2024-10-24 08:20:30
原创
386 人浏览过

How to Handle Optional Whitespace in Regular Expressions for Accurate Data Extraction?

可选空格正则表达式:忽略属性值中的空格

在编程中,有时需要处理字符串包含可选空格的实例。在编写正则表达式来准确提取数据时,这可能具有挑战性。

请考虑以下代码:

# Get Image data
preg_match('#<a href=&quot;(.*?)&quot; title=&quot;(.*?)&quot;><img alt=&quot;(.*?)&quot; src=&quot;(.*?)&quot;[\s*]width=&quot;150&quot;[\s*]height=&quot;(.*?)&quot;></a>#', $data, $imagematch);
$image = $imagematch[4];
登录后复制

此代码从 HTML 标记中提取图像的 src 属性。但是,它无法处理某些属性之间没有空格的情况,例如:

<code class="html"><a href=&quot;/wiki/File:Sky1.png&quot; title=&quot;File:Sky1.png&quot;><img alt=&quot;Sky1.png&quot; src=&quot;http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png&quot;width=&quot;150&quot; height=&quot;84&quot;></a></code>
登录后复制

<code class="html"><a href=&quot;/wiki/File:TallGrass.gif&quot; title=&quot;File:TallGrass.gif&quot;><img alt=&quot;TallGrass.gif&quot; src=&quot;http://media-mcw.cursecdn.com/3/34/TallGrass.gif&quot; width=&quot;150&quot;height=&quot;150&quot;></a></code>
登录后复制

要解决此问题,我们可以使用可选的空格正则表达式。这允许我们忽略字符之间的空格。具体方法如下:

#<a href\s?=&quot;(.*?)&quot; title\s?=&quot;(.*?)"><img alt\s?=&quot;(.*?)&quot; src\s?=&quot;(.*?)&quot;[\s*]width\s?=&quot;150&quot;[\s*]height\s?=&quot;(.*?)"></a>#
登录后复制

在此更新的正则表达式中:

  • s? before = 表示允许有空格,但可选。
  • s* 在属性值之后允许在属性名称和值后面有可选空格。

以上是如何处理正则表达式中的可选空格以准确提取数据?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!