Products
GG网络技术分享 2025-03-18 16:14 2
例如,在下面的字符串中“var jsTimeSharingData={pages:13,data:[”,将pages:后面的13提取出来,正则表达式如何写。我是这么写的\"\'pages:(\\d+)\'\",结果得到pages:13,而不是13。如何写才能只取得数字?
你用的什么语言,比如java 你的代码 匹配之后 ,group(0)是 pages:13 group(1)是13
零宽断言
了解一下:
https://www.cnblogs.com/macq/p/6597366.html
你的问题的解答:
(?<=pages\\:)\\d+
String phoneString = \\\"哈哈,13888889999\\\";// 提取数字
// 1
Pattern pattern = Pattern.compile(\\\"[^0-9]\\\");
Matcher matcher = pattern.matcher(phoneString);
String all = matcher.replaceAll(\\\"\\\");
System.out.println(\\\"phone:\\\" + all);
// 2
System.out.println( Pattern.compile(\\\"[^0-9]\\\").matcher(phoneString).replaceAll(\\\"\\\"));;
var str = \'haj123sdk54hask33dkhalsd879\';
function findNum(str){
return str.match(/\\d+/g);
}
alert( findNum(str) ); //[123,54,33,879]
望采纳。
(?!pages:)\\d+
(\\d+)
你可以去这个网站测试一下你的正则,我感觉蛮好用 http://tool.oschina.net/regex/# 正则测试工具,不知道你用的什么语言,python可以
如果你的值直接是对象,可以用 对象.属性 的方式获取。不需要也不能用正则表达式
var jsTimeSharingData={pages:13,data:[]}alert(jsTimeSharingData.pages);
如果你的值是标准的json格式字符串,可以先解析为对象,也不需要用正则表达式。
var jsTimeSharingData=\'{\\\"pages\\\":13,\\\"data\\\":[]}\'alert(JSON.parse(jsTimeSharingData).pages);
如果一定要用正则表达式。js中可以用下面方法。
var jsTimeSharingData=\'{pages:13,data:[]}\'alert(jsTimeSharingData.match(/pages:(\\d+)/)[1]);
如果要只取得数字。只有用后向断言,但是js中不支持,其它语言可以用:
(?<=pages\\:)\\d+
我是在delphi中使用RegExpr。xingjianfengaa的答案正解,解决了我的问题,但不知道为何不可在第一组得到。谢谢caozhy、qq_39196400 、jslang,使用(?<=pages:)\\d+或 (?!pages:)\\d+,会出现exception错误,可能是使用的解释器不同。 同样感谢weixin_41312918、zhuzuyumao,但实例字符串中后面的数字还有很多,单用d+不行(误导你们了)。
使用\\d+
var jsTimeSharingData=\\\"{pages:13,data:[\\\";
function getNumber(str){
return str.match(/\\d+/g);
}
console.log(getNumber(jsTimeSharingData));
Demand feedback