如何将这三个正则表达式合并为一个?

How do I combine these three regex into one?

我正在尝试制作一个只接受以下内容的正则表达式:

最少 100 个字符,至少 1000 个字符,不允许使用字符“,',<,>,不允许连续使用两个句点。

这是我目前拥有的:

如何将这个正则表达式合并为一个? ._.

这部分 [^._] 表示没有点或下划线,这部分 [.](?=[^.]|$)|_(?=[^_]|$) 匹配 ._ 后跟相反的字符串或字符串的结尾。

您可以使用排除 __..

的单个否定先行断言来编写模式
^(?!.*([._]))[^"'<>\n]{100,1000}$

说明

  • ^ 字符串开头
  • (?! 否定前瞻,断言右边的不是
    • .*([._]) 捕获 ._ 并在它之后匹配捕获的相同字符 (意味着没有出现 ..__)
  • ) 关闭前瞻
  • [^"'<>\n]{100,1000} 匹配除列出的任何字符 100-1000 次
  • $ 字符串结束

Regex demo(对于演示,量词设置为 {10,100}