[英]how to write this particular regex
如果我需要使用什么正则表达式?
需要在玩家列表中选择“ 10”,而不是从组中选择“ 10”
{"group":"10","player":["12","15","13","10","1"]}
抱歉,我应该在编程范围上多做一些介绍
json字符串应该被视为一个字符串,而不是json解析的,因为我需要在mysql中使用查询来选择符合此条件的行。
例如,在上面的示例中...
Select * from team Where jsondata=(Something to the effect that "10" can be found in player list but will ignore if "10" is found only in group)
如果我使用:
Select * from team Where jsondata LIKE'%"10"%'
那么显然这是错误的,因为如果数据是{"group":"10","player":[]}
它仍然符合条件
我想运行像preg_match
这样的php命令以匹配“ 10”形式的播放器列表(如果找到)
感谢那些到目前为止的答复
尝试这样的事情: "player":\\[.*"(10)"
或"player":\\[("\\d+",)*?"(10)"
取决于您有多严格。
在MySQL中,您可以使用以下命令:
SELECT * FROM team WHERE jsondata REGEXP '"player":.*"10"'
我知道你要求一个正则表达式。 但是,如果字符串将始终是Python dict,那么如何:
str = "{\"group\":\"10\",\"player\":[\"12\",\"15\",\"13\",\"10\",\"1\"]}"
"10" in eval( str )["player"]
这将测试"player"
键中的列表是否存在字符串"10"
。 您可能想要一些稍微不同的东西。 关键是,如果数据将始终是序列化的Python数据结构,那么您将能够更自然地将其作为Python数据结构使用。
请注意,由于我是手动键入字符串,因此必须转义"
。如果从文件中读取此字符串,则不必这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.