我需要一个字符串的正则表达式是一个图像 url。我需要三种正则表达式
- 以斜线开头(例如:/p/230x230/9/Apple_iPad_2_16GB@@9ap4d206.png)
- 以双斜杠开头(例如://图像)
- 以 http 开头(例如:'http://....')
我需要一个字符串的正则表达式是一个图像 url。我需要三种正则表达式
你可以使用这个:
$pattern = '~(?>https?+:/|/)?(?>/[^/\s]++)+~';
解释:
(?> # open an atomic group *
https?+ # http or https
:/ #
| # OR
/
)? # close the atomic group and make it optional
(?> # open an atomic group
/
[^/\s]++ # all characters except / or spaces one or more times (possessive *)
)+ # close the atomic group, one or more times
注意:
由于该模式描述了一个充满斜线的 url,因此我将~
其用作分隔符而不是经典的/
. 因此斜线不需要在模式中转义。
您可以向此模式添加锚点,以确保从头到尾完全匹配您的字符串:
$pattern = '~^(?>https?+:/|/)?(?>/[^/\s]++)+$~';