如何将preg_match用于部分匹配?
当我有字符串:
www.stackoverflow.com
Run Code Online (Sandbox Code Playgroud)
当我进入
stackoverflow.com or stackoverflow
Run Code Online (Sandbox Code Playgroud)
匹配它返回false的短语.如何使其适用于部分匹配?
preg_match使用正则表达式,你可以在这里得到一个非常好的教程.
在您的特定情况下,您正在寻找一个字符串,然后是一个可选的段(要将搜索更改为英语,您要查找"stackoverflow",可选地后跟".com").通过使用修饰符,可以使正则表达式的各个部分成为可选?:
preg_match('/stackoverflow(\.com)?/', $your_string)
Run Code Online (Sandbox Code Playgroud)
正则表达式here(/stackoverflow(\.com)?/)表示与上面的英文版本相同的东西 - 匹配"stackoverflow"后跟可选的".com".
以下是正则表达式如何工作的快速概述:
stackoverflow匹配"stackoverflow"?.如果没有该组,只有在该组之前的令牌?才会成为可选的(在本例中为"m").