相关疑难解决方法(0)

Google RE2 Regex 转义句号和下划线错误

我正在尝试验证username具有以下特征的字符串:

  • 不以.或开头_
  • 不以a结尾 .
  • 不允许.连续两个
  • 只有小写letter charactersnumbers

我的代码是 username.matches('^(?!\.)(?!_)(?!.*\.$)(?!.*?\.\.)[a-z0-9_.]+$')

在线使用正则表达式模拟器它正在工作

https://regex101.com/r/bDXMg3/2/

但是在Google RE2 语法中使用相同的语法(在Firestore 安全规则中使用)会引发大量错误

在此处输入图片说明

我试图然后双重逃避每个 .

使用代码 username.matches('^(?!\\.)(?!_)(?!.*\\.$)(?!.*?\\.\\.)[a-z0-9_.]+$')

它只显示一个错误(开头的红色 ^ 符号),但随后它给了我以下错误

在此处输入图片说明

Invalid regular expression pattern. Pattern: ^(?!\.)(?!_)(?!.*\.$)(?!.*?\.\.)[a-z0-9_.]+$.
Run Code Online (Sandbox Code Playgroud)

谁能让我知道我做错了什么?

regex re2

4
推荐指数
1
解决办法
2540
查看次数

标签 统计

re2 ×1

regex ×1