我正在尝试验证username具有以下特征的字符串:
.或开头_..连续两个letter characters和numbers我的代码是 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)