Preg_match指定字符串的一部分以匹配另一个字符串


preg_match on part of a string to match another string

我需要对两个字符串进行比较。第一个字符串看起来像这样:

http://my.app/admin/users/administrators/{id}/edit

第二个字符串看起来像这样:

http://my.app/admin/users/administrators/1/edit

{id}值表示一个数字字符,因此,上面的字符串应该匹配。如果我要对这个字符串进行比较,那么它将不匹配:

http://my.app/admin/users/administrators/xxx/edit

如何检查字符串是否匹配使用PHP/Laravel?

您可以使用forward来实现这个

/(?<=administrators'/)'d+(?='/edit)/

这里的正则表达式解释

PHP:

$re = "/(?<=administrators''/)''d+(?=''/edit)/"; 
$str = "http://my.app/admin/users/administrators/1/edit"; 
preg_match($re, $str, $matches);

UPDATE:由于url只包含一个数字组合,所以我们可以直接使用

/'d+/

这里的正则表达式解释

相关文章: