使用正则表达式匹配一段json字符串中是否有包含的字符 40C

打比方,下面是我要匹配的字符串,规则是取出 #号后到"号前的字符串中的逗号(,)

{"10#a,a":"aaa", "11#d,a":"ada", "12#dd,asa": "da"}

下面是我写出来的正则:

/((?<=#).*?(?="))/g

效果图:
图片说明

我现在能匹配到#号到"号的区间中的任意字符,我尝试将正则改变如下:

/((?<=#),(?="))/g

匹配失败,望求各位大神救救我

=============分割线===============

尝试了以下方法

/((?<=#).*?,.*?(?="))/g
/((?<=#).*?\,.*?(?="))/g
/((?<=#).*?[,].*?(?="))/g

三种方式的效果图:图片说明

1个回答

本来.*?匹配的是a,a这三个字符,你改后只能匹配到#,"这样的东西了,#”之间只能有一个逗号很显然不存在这样的字符,所以失败。

/((?<=#).*?,.*?(?="))/g ,我不确定逗号要不要转义,你试下吧

图片说明

我在python里面试三个都能出来。(a,a 能出来。不管怎么样d,a 跟他一样的结构总该出来吧。)

补充:
Python里面括号表示要截取的内容,看你这个写的好像括号表示不截取。那你试试这样写
/((?<=#)(.*?),(.*?)(?="))/g

Faiz2
Faiz2 回复Faiz2: 尝试之后还是不行,我在想想其他的办法吧
2 个月之前 回复
Faiz2
Faiz2 回复zxc_wolf:您好感谢您的回复与帮助,我用的是Scala是基于JVM的,我尝试一下
2 个月之前 回复
weixin_42678268
bj_0163_bj 回复Faiz2: 再试试,随便问下,你是哪种语言,java吗?不行的话,我帮你问下java同事
2 个月之前 回复
Faiz2
Faiz2 首先感谢您的回复,是我的问题,我没讲清楚我要的效果,表达式能够匹配出a,a d,a dd,asa这三个,但我想要的效果是只匹配出内容中间的逗号,并不想把其他的字符串也给匹配出来
2 个月之前 回复
weixin_42678268
bj_0163_bj 回复Faiz2: 补充了回答。我尝试了python 是可以 的。a,a能出来,d,a出不来吗?
2 个月之前 回复
Faiz2
Faiz2 感谢您的回复,我尝试了您提供的思路并且也尝试了转义逗号与包含逗号作为条件的正则,最终结果还是只能匹配到a,a,如果您有新的思路还望交流一下
2 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问