preg_match用于部分匹配

Liv*_*eEn 2 php preg-match

如何将preg_match用于部分匹配?

当我有字符串:

www.stackoverflow.com
Run Code Online (Sandbox Code Playgroud)

当我进入

stackoverflow.com or stackoverflow
Run Code Online (Sandbox Code Playgroud)

匹配它返回false的短语.如何使其适用于部分匹配?

Dan*_*uis 5

preg_match使用正则表达式,你可以在这里得到一个非常好的教程.

在您的特定情况下,您正在寻找一个字符串,然后是一个可选的段(要将搜索更改为英语,您要查找"stackoverflow",可选地后跟".com").通过使用修饰符,可以使正则表达式的各个部分成为可选?:

preg_match('/stackoverflow(\.com)?/', $your_string)
Run Code Online (Sandbox Code Playgroud)

正则表达式here(/stackoverflow(\.com)?/)表示与上面的英文版本相同的东西 - 匹配"stackoverflow"后跟可选的".com".

以下是正则表达式如何工作的快速概述:

  • 模式每一端的斜杠是一个分隔符,PHP用它来包含正则表达式.
  • 正则表达式中的大多数字符按字面匹配,因此stackoverflow匹配"stackoverflow"
  • 括号定义了一个,该?.如果没有该组,只有在该组之前的令牌?才会成为可选的(在本例中为"m").
  • 请注意,".com"中的点前面有斜杠.这是因为是正则表达式中的特殊字符(类似于通配符),因此如果要匹配文字点,则需要对其进行转义.