鉴于以下Facebook个人资料和网页网址,我的目的是将个人资料ID或用户名提取到第一个匹配位置.
http://www.facebook.com/profile.php?id=123456789
http://www.facebook.com/someusername
www.facebook.com/pages/Regular-Expressions/207279373093
到目前为止,正则表达式看起来像这样
(?:http:\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.PHP\?id=(\d.*))?([\w\-]*)?
其产生以下结果:
结果1
123456789
结果2
1.
2.一些用户名
结果3
1.
207279373093
理想的结果将如下所示:
结果1
123456789
结果2
一些用户名
结果3
207279373093
也就是说,我想要将配置文件标识符始终返回到第一个位置.
这也是理想的www.facebook.com/和facebook.com/也不匹配.
我推荐Rad Software Regular Expression Designer.
另外这个在线工具是非常好的https://regex101.com/(虽然大多数人喜欢http://regexr.com/)
(?:(?:http|https):\/\/)?(?:www.)?facebook.com\/(?:(?:\w)*#!\/)?(?:pages\/)?(?:[?\w\-]*\/)?(?:profile.PHP\?id=(?=\d.*))?([\w\-]*)?