当前位置: 首页 > 面试题库 >

可选的空白正则表达式

万铭
2023-03-14
问题内容

我在尝试忽略某些字符之间的空格时遇到问题。我已经搜寻了几天,似乎找不到合适的解决方案。

这是我的代码:

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

基本上,这些是我遇到的一些情况:

 <a href="/wiki/File:Sky1.png" title="File:Sky1.png"><img alt="Sky1.png" src="http://media-mcw.cursecdn.com/thumb/5/56/Sky1.png/150px-Sky1.png"width="150" height="84"></a>

(请注意,width =“”和src =“”之间没有空格)

<a href="/wiki/File:TallGrass.gif" title="File:TallGrass.gif"><img alt="TallGrass.gif" src="http://media-mcw.cursecdn.com/3/34/TallGrass.gif" width="150"height="150"></a>

(请注意,在width =“”和height =“”之间没有空格。)

无论如何,有没有忽略这些字符之间的空格?因为我不是Regex专家。


问题答案:

\s?如果可以使用空格,请添加一个。

\ s 代表空白

说前面的字符可能会发生一次,也可能不会发生。

如果允许多个空格,并且是可选的,请使用\s*

* 表示前一个字符可以出现零次或多次。

'#<a href\s?="(.*?)" title\s?="(.*?)"><img alt\s?="(.*?)" src\s?="(.*?)"[\s*]width\s?="150"[\s*]height\s?="(.*?)"></a>#'

在属性名称和=之间允许一个可选的空格。

如果您还希望在“之后”之后=添加一个可选空格,请在“之后”之后添加一个\s?

同样,无论您在哪里有可选字符,都可以在可选字符之后使用,?如果最大出现次数为 1*最大出现次数不受限制。

而您的实际问题是[\s*]导致 空格* 作为封闭在其中 的字符**
出现,[并且]是字符类。字符类允许其任何成员的一次出现(因此除去*来自它),如果你追加一个量词(?+*后等)]在字符类可以根据量词发生的任何字符(多个)。



 类似资料:
  • 我使用这个正则表达式: 要匹配这样的字符串: 分为4组: 问:我如何使第一个组可选,使结果组是一个空字符串? 我想在每种情况下得到4组,如果可能的话。 这种情况下的输入字符串:(第一组后面没有下划线)

  • 我有以下代码: 代码JS: 运行此代码后,具有以下形式 我想在最后一个括号前添加空格,如下例所示。 您能告诉我如何接受对代码的更改,以便保留空白吗? 提前感谢! 编辑: 我添加了这个代码来调用这里作为添加空白。。。

  • 本文向大家介绍php和editplus正则表达式去除空白行,包括了php和editplus正则表达式去除空白行的使用技巧和注意事项,需要的朋友参考一下 去除字符串内部的空行: 去除全部的空行,包括内部和头尾: editplus中替换空白行的正则表达式: 正则表达式:^[\t\n ]*\n

  • 我有一些具有bg_和cp_前缀数据库表,如“bg_table1”、“bg_table2”和“cp_table1”,还有一些没有任何前缀的表,如my_table1和user_action等等。 我有两个debezium postgreSQL连接器,并尝试通过以下操作配置属性:debezium-http://debezium.io/docs/connectors/postgreSQL/#connect

  • 问题内容: 我正在尝试验证一个没有多余字符的(美国)电话号码。因此格式为1-555-555-5555,没有破折号,空格等,并且1是可选的。但是,我的正则表达式仅会排除前导数字为1的数字,并说没有该数字的数字将无效。这是我在使用的地方,我哪里出错了? 问题答案: 用: ?表示“可选”。

  • 我是一个完全的正则表达式新手,花了几个小时试图解决这个难题。我认为我必须使用某种可选的非捕获组或交替。 我想匹配以下字符串: > 诺伊尔电影 a von 1000 诺伊尔电影a von 1000 mit b 诺伊尔电影a von 1000 mit b und c 1000英镑的新电影 诺伊尔电影公司 诺伊尔电影a mit b und c 诺伊尔电影a mit b und c und 我的正则表达式