Regex 正则表达式匹配特定字符串后的任何数字
我想匹配url字符串中的用户id号,该字符串通常位于Regex 正则表达式匹配特定字符串后的任何数字,regex,Regex,我想匹配url字符串中的用户id号,该字符串通常位于id=或/user/ 示例: http://dummy.url/url/path/id=7623 http://dummy.url/url/path/user/8743 http://dummy.url/url/path/user/56 http://dummy.url/url/path=88772/user/890&more=87273&variables&here=76233 http://dummy.url/url
id=
或/user/
示例:
http://dummy.url/url/path/id=7623
http://dummy.url/url/path/user/8743
http://dummy.url/url/path/user/56
http://dummy.url/url/path=88772/user/890&more=87273&variables&here=76233
http://dummy.url/url/path/id=2818372
我需要匹配76238743 568902818372
我没有在这方面做太多尝试,因为我在regex是一个完全的noob,我只知道如何处理数字,所有数字,所以如果url有任何数字,它也会匹配它们
数字将始终为正整数您可以通过定义一个替代项来实现:
(?:user\/|id=)\K\d+
说明:
(?: # Start of a non-capturing group
user\/ # Match `user/`
| # Or
id= # `id=`
) # End of non-capturing group
\K\d+ # Forget matched strings then match digits
Javascript方式:
var url=”http://dummy.url/url/path/user/56";
console.log(url.replace(/(user\/| id=)\d+/,函数(match,p1){
返回p1+‘id’;
}));代码>您可以通过定义替代项来完成:
(?:user\/|id=)\K\d+
说明:
(?: # Start of a non-capturing group
user\/ # Match `user/`
| # Or
id= # `id=`
) # End of non-capturing group
\K\d+ # Forget matched strings then match digits
Javascript方式:
var url=”http://dummy.url/url/path/user/56";
console.log(url.replace(/(user\/| id=)\d+/,函数(match,p1){
返回p1+‘id’;
}));代码>如果数字总是在末尾,请查看如何使用正则表达式提取最后一段刺。你已经知道如何匹配数字了。这应该不难理解!不数字不会总是在结尾。您的第四个示例与此相矛盾。您通常在id=或/user/之后说,您知道要捕获的数字前面所有可能的字符串吗?@csirmazbendeguz刚刚编辑了第四个示例,所以我不知道您是指我的编辑还是指原始问题数字是否会始终在结尾,查看如何使用正则表达式提取最后一段刺。你已经知道如何匹配数字了。这应该不难理解!不数字不会总是在末尾。您的第四个示例与此相矛盾。您通常在id=或/user/之后说,您知道要捕获的数字前面所有可能的字符串吗?@csirmazbendeguz刚刚编辑了第四个示例,所以我不知道您指的是我的编辑还是原始问题var finalur=url.replace((?:user\/| id=)\K\d+,id)
关于我在这里做错了什么有什么线索吗?如果是javascript,\K
不受支持。您必须删除\K
,将非捕获组改为捕获组(user\/|id=)\d+
,然后继续操作。请检查更新。var finalUrl=url.replace((?:user\/|id=)\K\d+,id)
关于我在这里做错了什么有什么线索吗?如果是javascript,\K
不受支持。您必须删除\K
,将非捕获组改为捕获组(user\/|id=)\d+
,然后继续操作。请检查更新。