在一个文件中,我有无数import json
import re
with open('model.json','r') as fb:
con = json.load(fb)
for layer_key in con['layers'][0]:
print("Layer: {}".format(layer_key))
layer = con['layers'][0][layer_key]
layers_kwargs = re.sub('^(.*?)\(', '', layer)[:-1]
if not layers_kwargs:
print('No kwargs')
continue
for kwarg in layers_kwargs.split(', '):
kwarg = [i.strip() for i in kwarg.split('=')]
if len(kwarg) != 2:
print('No key', kwarg)
continue
k = kwarg[0]
v = kwarg[1]
print(k,v)
语句和SELECT
关键字结合在一起。我只想提取所有UNION
字符串?如何在记事本++编辑器中使用正则表达式删除不包含句点(。)的所有单词?数据库和表是唯一带有句点的。
即使没有删除新行,我也可以。但是,作为给所有看这篇文章的人一个学习加成,您还可以显示修饰新行的正则表达式,它将显示以下输出:
db.table
答案 0 :(得分:3)
您可以在正则表达式模式下尝试以下查找和替换:
Find: (?<=^|\s)[^.]+(?=$|\s)
Replace: <empty string>
请注意,我的替换只删除查询中不需要的字词;它不会消除杂散或剩余的空白。为此,您可以轻松地快速进行第二次替换以删除不需要的空白。
编辑:
似乎Notepad ++不喜欢我在模式中使用的可变宽度外观。这是一个经过重构且更为冗长的版本,它使用严格固定宽度的lookbehinds:
(^[^.]+$)|(^[^.]+(?=\s))|((?<=\s)[^.]+$)|((?<=\s)[^.]+(?=\s))
以上两种模式的逻辑是匹配一个完全由非点字符组成的单词,该单词在任一侧被以下一个或多个包围:
^
)的开头$
)的结尾\s
)答案 1 :(得分:0)