删除字符串空间并使用RegEx进行比较

时间:2019-03-29 15:45:32

标签: regex

我有以下字符串:

Name was changed from *** to %%%

而***和%%%可以是任何东西。

我需要做的是确保***和%%%不同。我还需要确保,如果***等于Yan n并且%%%是Yann,它们将被视为相似(空格可以在变量之前和/或之后)。

我当前的RegEx只检测句子本身:

^Name was changed from.*to.*$

当***和%%%相同(不包括空格)时,如何确保不将其考虑在内?

仅供参考,我在VBA / Excel宏中使用此正则表达式

1 个答案:

答案 0 :(得分:1)

基于使用捕获组与否定的超前预测相结合的注释,对组的反向引用似乎足以获得匹配:

^Name was changed from (.+?) to (?!\s*\1\s*$).*$

Regex101 demo

说明

  • ^字符串的开头
  • Name was changed from (.+?) to匹配起始文本并以非贪婪的方式捕获 from to
  • 之间的内容
  • (?!负向查找,断言直接在右边的不是
    • \s*\1\s*$匹配0+个空白字符,向后引用组1、0+个空白字符并断言字符串的结尾
  • )提前关闭
  • .*$匹配所有字符,直到字符串末尾