我想找到与另一个值匹配的值,该值的最大替换数为max_sub
。你知道吗
我做了以下工作:
item = 'ASDDGH'
Ref = 'ASDDGY'
max_sub = 1
rx = re.compile(item+ '{s<=' + str(max_sub) + "}")
rx.search(Ref)
返回如下预期结果:
<regex.Match object; span=(0, 6), match='ASDDGY', fuzzy_counts=(1, 0, 0)>
但是,如果我这样做:
item = 'ASDDGH'
Ref = 'ASDAGY'
max_sub = 2
rx = re.compile(item+ '{s<=' + str(max_sub) + "}")
rx.search(Ref)
我没有得到匹配,即使字符串之间只有两个替换。你知道吗
我做错什么了?你知道吗
编辑:
谢谢,我帮你搞定了。你知道吗
但是,我想知道为什么会出现匹配:
item = 'WARQENW'
Ref = 'WARQRFWTAPLFDYW'
max_sub = 7
rx = re.compile("(" + item+ '){s<=' + str(max_sub) + "}")
rx.search(Ref)
item和Ref的长度不一样,所以不仅仅是替换,但是输出表明只做了2个sub。你知道吗
下面是重构@Data类中变量的getter/setter的一个小解决方案。这在eclipse和其他地方可能也适用:
示例类,我们想在其中将“value”重构为“value2”:
(1)将变量重命名(不要重构)为临时变量,以删除lombak为原始名称生成的getter/setter。在引用旧getter/setter的任何地方都会出现编译错误,但这是暂时的:
(2)手动为旧名称创建一个伪getter/setter。您的编译错误现在将消失:
(3)使用eclipse重构虚拟getter/setter。代码库中的所有引用现在都使用getValue2()和setValue2()
(4)删除重命名的伪getter/setter,并将变量名从临时名称更改为新名称。现在,一切又都变傻了:
诚然,这有点烦人,但实际上并不需要那么长时间,而且肯定比手工更改数百个参考文献要好
我最近遇到的一个:
在IntelliJ(不了解Eclipse)中,不能提取包含lombok生成的任何方法的接口。它们不会出现在相关对话框中
有一个简单的解决方法:让IntelliJ创建方法,提取接口,还原类,然后让它再次实现接口
对于更复杂的重构,我选择了“delombok refactor relombok”。这是一种很重的方法,但在处理复杂的重构时不需要中间中断的构建
在我的例子中,我使用maven进行构建。我为lombok:delombok添加了maven构建插件,配置如下:
这使得delombok副本在目标目录下很容易获得
要重构特定的lombok类:
我希望那些第一次尝试重构lombok类的人对此持怀疑态度。我是在其他技术和更复杂的龙目巨人功能(如@Builder、@SuperBuilder)的挫折和局限之后才来到这里的
例如,为@Builder手动添加setter需要正确声明匹配的lombok生成的内部生成器类。这对于lombok@SuperBuilder继承这样的功能来说变得更加困难。当我尝试手动执行此操作时,我决定以delombok类为指导。就在那时,我意识到替换delombok源代码,随意重构,然后删除它更简单
相关问题 更多 >
编程相关推荐