gpt4 book ai didi

regex - 强制正则表达式两边都用引号括起来,或者根本不括起来,而不重复表达式

转载 作者:行者123 更新时间:2023-12-02 19:09:12 25 4
gpt4 key购买 nike

我有一个表达式,要么应该用两边的引号括起来,要么根本不用引号,并且我想创建一个正则表达式来捕获该表达式。
重点是,我不想重复这个表达式。
例如,如果表达式是英语中的任何单个字母,则重复的正则表达式将为

^[a-z]|'[a-z]'$

现在 a'a' 都会被接受。

有没有办法定义这个正则表达式而不重复表达式?

最佳答案

怎么样:

^('?)[a-z]\1$

在组 1 中,匹配 ' 或不匹配。在 [a-z] 部分之后,匹配我们在组 1 中匹配的内容 (\1)。所以要么:

  • 组 1 匹配 ',在这种情况下 \1 匹配 ' --> ^'[a-z]'$,或;
  • 组 1 不匹配任何内容,在这种情况下 \1 不匹配任何内容 --> ^[a-z]$

因此,这与 ^([a-z]|'[a-z]')$ 匹配相同的内容。

Demo

关于regex - 强制正则表达式两边都用引号括起来,或者根本不括起来,而不重复表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64587680/

25 4 0
文章推荐: vue.js - 我如何使用 Vuelidate 来验证