【问题标题】:Opposite result of a regular expression正则表达式的相反结果
【发布时间】:2012-08-25 15:50:32
【问题描述】:

我有这个正则表达式

^(\d+)/\1$

匹配字符串

1/1
2/2
5/5

我想得到这个正则表达式的逆结果。我浏览了网络和stack overflow,发现

^((?!(\d+)/\1.).)*$

应该做的伎俩,但它没有。

谁能指出我正确的方向?

【问题讨论】:

  • 相反的结果?这意味着匹配这些字符串?
  • 你不能只测试!match(your_regex)吗?还是要匹配1/22/3 等模式?
  • 是的,Felix - 我需要看起来不像那样的字符串。 @Joao我无法编码,它是数据表中的过滤器。编辑:是的 - 我需要这样的字符串 - 1/2 和 2/3 但不是 2/2 和 5/5 类型的字符串。
  • 我有一个可预测的输入:所有字符串都具有数字/数字格式。
  • @Tool:我明白了,看看我的答案,看看它是否适合你的需要。由于您所有的字符串都具有这种精确的格式,因此它与上述正则表达式完全相反。

标签: regex negative-lookahead


【解决方案1】:
/^(\d+)\/(?!\1$)\d+$/

这将匹配 2/31/10,但不匹配 1/12/2 等。换句话说,只有分数的第一部分与第二部分不同时才会匹配。

【讨论】:

  • 这给我留下了 0/10。我也需要匹配0/10(条件:左边的数字必须与右边的数字不同,输入也不例外——它们总是数字,所以我不必担心)。编辑:它也不显示 3/10。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-25
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多