我一直在挣扎,我的头都快炸了,所以我需要用Python编写一个基本的Regex脚本,它可以识别一个字符串是否具有Python字典的格式(模式),使用下面的代码,我只成功地匹配了如下字符串:my_dict = {1: 'apple', 2: 'ball'}
我想匹配像下面这样的东西,它不只是使用数字作为键和字母作为值:
{
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
- ------------字典检测器-------------------
# importing regex module
import re
# printing script purpose
# `\n` is for printing newline
print('\nScript designed to detect whether if user input is a Python dictionary construction.\n')
# getting user input
user_inp = input('Type Text> ')
if user_inp != '{}':
user_inp = user_inp.replace('}', ',}', 1)
if re.search('''^{((('(\w|\d)*')|(\w|\d)*) *: * (('(\w|\d)*')|(\w|\d)*) *, *)*}$''', user_inp):
print('yes, a dictionary has been detected.')
else:
print('No dictionary has been detected.')
2条答案
按热度按时间von4xj4u1#
正如评论中提到的,
json
可能更适合,但如果您仍然想使用regex,这里有一个:您可以用作:
明显不匹配的情况:
算术表达式,例如作为关键字或值的
2+5
dict
s作为值嵌套指令
可能还有更多。但是对于基本的字典来说应该还可以。
pdtvr36n2#
这不是一个真正的正则表达式解决方案,但如果你使用python,你可以: