所以基本上我得到了像这样的链接
https://dog.example.com/randomgenerated45443444444444
https://turtle.example.com/randomgenerated45443
https://mice.example.com/randomgenerated452
https://monkey.example.com/randomgenerated43232323
https://leopard.example.com/randomgenerated22222222222222222
我想知道是否有可能检测到https://
和.example.com/
之间的单词,这些单词将是随机动物名称。并用" thumbnail"替换它。动物名称和随机生成的字母数量总是随着字母数量的不同而变化
答案 0 :(得分:1)
您可以使用积极的预测来获取所需的数据:
$string = 'https://leopard.example.com/randomgenerated22222222222222222';
$pattern = '/(?=.*\/\/)(.*?)(?=\.)/';
$replacement = 'thumbnail';
$foo = preg_replace($pattern, $replacement, $string);
$protocol = 'https://';
echo $protocol . $foo;
返回
https://thumbnail.example.com/randomgenerated22222222222222222
正则表达式的解释:
积极前瞻(?=.*\/\/
)
断言下面的正则表达式匹配
.*
匹配任何字符(行终止符除外)
*
量词 - 在零和无限次之间匹配,尽可能多次,根据需要回馈(贪婪)
\/
字面匹配字符/
(区分大小写)
\/
字面匹配字符/
(区分大小写)
第一个捕获小组(。*?)
.*?
匹配任何字符(行终止符除外)
*?
量词 - 在零和无限时间之间匹配,尽可能少,根据需要进行扩展(懒惰)
积极前瞻(?=\.
)
断言下面的正则表达式匹配
\.
匹配角色。字面意思(区分大小写)
答案 1 :(得分:-1)
假设https://
和example.com
永远不会改变,那么这是您可以用于此目的的最简单的正则表达式:
https://(.+)\.example\.com
(.+)
中的任何内容都将是您尝试提取的字词。
编辑于2016.10.27:
虽然 /
字符在正则表达式中没有特殊含义,但如果您 ,它可能需要转义(\/
) >使用它作为表达式分隔符。所以上面的内容如下:
https:\/\/(.+)\.example\.com