繁体   English   中英

如何写这个特殊的正则表达式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM