首页 > 解决方案 > 正则表达式第一个字符不同于第三个字符

问题描述

我试图排除第一个字符等于第三个字符的字符串:

传递字符串:X9K3 V3Z5

不传递字符串:A4A9 R5R1

我试过了^(.).[^\1].$

但我对正则表达式太陌生,无法理解它为什么失败。

标签: regex

解决方案


你可以使用这个正则表达式:

^(.).(?!\1).+$

正则表达式演示

  • [^\1]没有做它打算做的事情,因为[...]在 first 之后每个字符都变成文字,^所以它只匹配除\and之外的所有内容1
  • (?!\1)另一方面,如果下一个位置的字符与我们在第 1 组中捕获的字符不同,则匹配失败。

推荐阅读