我是regex的新手,我正在尝试使用正则表达式来查找问号之后和管道之前的任何字符数以及电话号码。谁能帮帮我吗?以下是示例网址?
http://www.myurl.com?demo|15555555555
正则表达式应该找到" demo"和" 15555555555"
答案 0 :(得分:1)
这是一个带有命名捕获组的正则表达式,我也试图涵盖不同数字格式的许多可能性
<强>正则表达式强>
(?<=\?)(?'name'[\w\s%]+)\|(?'phone'[\+\w-\(\)\s%]+)(?:\n|$)
测试字符串
http://www.myurl.com?demo|15555555555
http://www.myurl.com?Local|754-3010
http://www.myurl.com?Domestic|(541) 754-3010
http://www.myurl.com?International|+1-541-754-3010
http://www.myurl.com?Dialed in the US|1-541-754-3010
http://www.myurl.com?Dialed from Germany|001-541-754-3010
http://www.myurl.com?Dialed from France|191 541 754 3010
http://www.myurl.com?skype|155555-SKYPE
http://www.myurl.com?an%20escaped%20name|191%20541%20754%203010
<强>结果强>
demo
15555555555
Local
754-3010
Domestic
(541) 754-3010
International
+1-541-754-3010
Dialed in the US
1-541-754-3010
Dialed from Germany
001-541-754-3010
Dialed from France
191 541 754 3010
skype
155555-SKYPE
an%20escaped%20name
191%20541%20754%203010
答案 1 :(得分:0)
如果您自己创建该链接,我建议您编写一个通用的$ GET变量。你不会需要任何正则表达式。
http://www.myurl.com?demo=15555555555
echo htmlspecialchars($_GET["demo"]);
答案 2 :(得分:0)