简单的方法来检查一个字符串“喜欢”另一个与笑话者

时间:2012-09-20 10:18:19

标签: php regex

我正在寻找一个与SQL LIKE语句相同的函数:

$match = match('abcdefg', 'a_c*fg');

其中“_”代表一个字符和“*”倍数。

我需要将这些char替换为正则表达式部分,例如“。+”替换为“*”但我应该在它之前使用preg_quote转义正则表达式字符除了这两个“_”和“*”。

有一种简单的方法吗?

1 个答案:

答案 0 :(得分:1)

查看fnmatch功能

OR

like('goo*','google.com');      -->  strpos('goo','google.com') === 0

下一个,您可以使用strpos:

like('*gl*','google.com');      -->  strpos('gl', 'google.com') !== false;

接下来你可以使用equals:

like('google.com','google.com') -->  'google.com' == 'google.com'

当然,您可以对所有这些使用正则表达式:

like('goo*','google.com');      -->  preg_match('#^goo.*$#','google.com') 
like('*gl*','google.com');      -->  preg_match('#^.*gl.*$#', 'google.com');
like('google.com','google.com') -->  preg_match('#^google\.com$#', 'google.com')

将您的模式转换为正则表达式,在开头放置^,在结尾放置$,然后将*替换为。*并转义.s。