正则表达式怎么提取json中的value?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了正则表达式怎么提取json中的value?相关的知识,希望对你有一定的参考价值。

json字符串:"content":"正则表达式,怎么提取json中的value","A":"B","AA":"BB"
我写的正则表达式:(?<="?content"?:)[^,]*
因为上面的字符串中的value中的逗号是中文的,而我正则中的[^,] 是英文的,所以,这样可以截取到整个value值;但是工作中遇到的情况是那个value中的逗号很多都是英文的,这样的话只能截取到”正则表达式“,后面的内容就挂掉了
求教各位这个正则该怎么写才能提取出完整的value值?

参考技术A .版本 2 .程序集 彗星正则表达式类, , 公开 .程序集变量 表达式, 对象 .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用 .局部变量 脚本对象, 对象 .局部变量 ret, 变体型 脚本对象.创建 (“MSScriptControl.ScriptControl”, ) 脚本对象.写属性 (“Language”, “VBScript”) 脚本对象.数值方法 (“AddCode”, “Function GetRegExp()” + #换行符 + “Set GetRegExp=new RegExp” + #换行符 + “End Function”) ret = 脚本对象.通用方法 (“Eval”, “GetRegExp()”) 表达式 = ret.取对象 () .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用 .子程序 取表达式对象, 对象, 公开, GetRegExp 返回 (表达式) .子程序 准备就绪, 逻辑型, 公开, 查看正则表达式是否初始化完毕。 返回 (取反 (表达式.是否为空 ())) .子程序 模式, 文本型, 公开, 设置或返回搜索的正则表达式模式。 .参数 欲写入属性值, 文本型, 可空, 留空则为读,被搜索的正则字符串表达式。 .如果真 (是否为空 (欲写入属性值)) 返回 (表达式.读文本属性 (“Pattern”, )) .如果真结束表达式.写属性 (“Pattern”, 欲写入属性值) 返回 (字符 (0)) .子程序 忽略大小写, 逻辑型, 公开, 设置或返回一个逻辑值,指明模式搜索是否区分大小写。 .参数 欲写入属性值, 逻辑型, 可空, 留空则为读,不留空则返回是否写入成功。 返回 (选择 (是否为空 (欲写入属性值), 表达式.读逻辑属性 (“IgnoreCase”, ), 表达式.写属性 (“IgnoreCase”, 欲写入属性值))) .子程序 全局匹配, 逻辑型, 公开, 设置或返回一个逻辑值,该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。 .参数 欲写入属性值, 逻辑型, 可空, 留空则为读,不留空则返回是否写入成功。 返回 (选择 (是否为空 (欲写入属性值), 表达式.读逻辑属性 (“Global”, ), 表达式.写属性 (“Global”, 欲写入属性值))) .子程序 匹配多行, 逻辑型, 公开, 设置或返回是否匹配多行。 .参数 欲写入属性值, 逻辑型, 可空 返回 (选择 (是否为空 (欲写入属性值), 表达式.读逻辑属性 (“Multiline”, ), 表达式.写属性 (“Multiline”, 欲写入属性值))) .子程序 执行, 对象, 公开, 对指定的字符串执行正则表达式搜索。 .参数 欲被搜索的文本, 文本型, , 要在其上执行正则表达式的文本字符串。 返回 (表达式.对象型方法 (“Execute”, 欲被搜索的文本)) .子程序 搜索, 逻辑型, 公开, 对指定的字符串执行一个正则表达式搜索,并返回一个逻辑值指示是否找到匹配的模式。 .参数 欲被搜索的文本, 文本型, , 要执行正则表达式搜索的文本字符串。 返回 (表达式.逻辑方法 (“Test”, 欲被搜索的文本)) .子程序 替换, 文本型, 公开, 换在正则表达式查找中找到的文本。 .参数 欲被替换的文本, 文本型, , 将要进行文本替换的字符串 .参数 用作替换的文本, 文本型, 可空, 用作替换的文本 返回 (表达式.文本方法 (“Replace”, 欲被替换的文本, 用作替换的文本)) .子程序 GetRegExp, 对象, 公开, 取表达式对象 返回 (表达式)
补充:
.子程序 GetPattern, 文本型, 公开 返回 (表达式.读文本属性 (“Pattern”, )) .子程序 SetPattern, , 公开 .参数 欲写入属性值, 文本型 表达式.写属性 (“Pattern”, 欲写入属性值) .子程序 GetIgnoreCase, 逻辑型, 公开 返回 (表达式.读逻辑属性 (“IgnoreCase”, )) .子程序 SetIgnoreCase, , 公开 .参数 欲写入属性值, 逻辑型 表达式.写属性 (“IgnoreCase”, 欲写入属性值) .子程序 GetGlobal, 逻辑型, 公开 返回 (表达式.读逻辑属性 (“Global”, )) .子程序 SetGlobal, , 公开 .参数 欲写入属性值, 逻辑型 表达式.写属性 (“Global”, 欲写入属性值) .子程序 GetMultiline, 逻辑型, 公开 返回 (表达式.读逻辑属性 (“Multiline”, )) .子程序 SetMultiline, , 公开 .参数 欲写入属性值, 逻辑型 表达式.写属性 (“Multiline”, 欲写入属性值) .子程序 Execute, 对象, 公开 .参数 sourceString, 文本型 返回 (表达式.对象型方法 (“Execute”, sourceString)) .子程序 Test, 逻辑型, 公开 .参数 sourceString, 文本型 返回 (表达式.逻辑方法 (“Test”, sourceString)) .子程序 Replace, 文本型, 公开 .参数 sourceString, 文本型 .参数 replaceVar, 文本型 返回 (表达式.文本方法 (“Replace”, sourceString, replaceVar))

用正则表达式提取网址中的IP怎样取?

比如:http://10.1.1.1:8080/abcde/cdf.…… 取10.1.1.1:8080怎样取?

\\d+\\.\\d+\\.\\d+\\.\\d*\\:\\d+


import java.util.regex.*;


// 表达式对象

Pattern p = Pattern.compile("\\\\d+\\\\.\\\\d+\\\\.\\\\d+\\\\.\\\\d*\\\\:\\\\d+");


// 创建 Matcher 对象

Matcher m = p.matcher("");


// 是否找到匹配

boolean found = m.find();


if( found )

    String foundstring = m.group();

    int    beginPos    = m.start();

    int    endPos      = m.end();


参考技术A

用正则表达式提取网址的方式如下:

    用ifconfig来提取

    ifconfig eth0|grep "inet addr"|awk 'print $2'|awk -F: 'print $2'192.168.10.1

    用ip addr来提取。

    ip addr | grep -Po '[^ ]+(?=/\\d)'


参考技术B

没有对IP地址的有效性做检查:

<html>
<head>
<!--
    将此内容保存为 html 文件,浏览器允许运行脚本进行测试。
-->
<script type="text/javascript">
function check()

    var str;
    str = document.getElementById("txtInput").value;
    if (str.match(/(\\d+\\.\\d+\\.\\d+\\.\\d+:\\d+)/) != null)
    
        alert("提取IP端口:" + RegExp.$1);
    
    else
    
        alert("没有提取到内容。");
    

</script>
</head>
<body>
    输入:<input type="text" id="txtInput" value="http://10.1.1.1:8080/abcde/cdf" />
    <button type="button" onclick="check()">正则检查</button>
</form>
</body>
</html>

追问

用java 怎么写啊

追答

没写过java,正则表达式在什么语言中都是一样的,所以你了解一下java使用正则表达式相关的用法,然后对应的正则表达式用这个去写代码:

(\d+\.\d+\.\d+\.\d+:\d+)

以上是关于正则表达式怎么提取json中的value?的主要内容,如果未能解决你的问题,请参考以下文章

十Jmeter 关联-正则表达式提取器

jquery 怎么 使用 正则表达式 提取 字符串中的时间

怎样在scala正则表达式提取器中使用小括号

正则表达式提取嵌入在 XML 字符串中的 JSON 对象

提取登录的Token值两种方法之正则表达式和Json提取器

如何使用 Python 处理 JSON 文件中的正则表达式字符串