我有以下字符串:
Name was changed from *** to %%%
而***和%%%可以是任何东西。
我需要做的是确保***和%%%不同。我还需要确保,如果***等于Yan n
并且%%%是Yann
,它们将被视为相似(空格可以在变量之前和/或之后)。
我当前的RegEx只检测句子本身:
^Name was changed from.*to.*$
当***和%%%相同(不包括空格)时,如何确保不将其考虑在内?
仅供参考,我在VBA / Excel宏中使用此正则表达式
答案 0 :(得分:1)
基于使用捕获组与否定的超前预测相结合的注释,对组的反向引用似乎足以获得匹配:
^Name was changed from (.+?) to (?!\s*\1\s*$).*$
说明
^
字符串的开头Name was changed from (.+?) to
匹配起始文本并以非贪婪的方式捕获 from 和 to (?!
负向查找,断言直接在右边的不是
\s*\1\s*$
匹配0+个空白字符,向后引用组1、0+个空白字符并断言字符串的结尾)
提前关闭.*$
匹配所有字符,直到字符串末尾