Regex 用于验证邮政编码格式的dart正则表达式

Regex 用于验证邮政编码格式的dart正则表达式,regex,flutter,dart,Regex,Flutter,Dart,我正在尝试创建正则表达式来验证所有邮政编码和邮政编码格式。我找到了答案,但在dart中不起作用。以下是答案中的标准,这正是我想要的 每个邮政编码系统仅使用A-Z和/或0-9,有时使用空格/破折号 并非每个国家都使用邮政编码(都柏林以外的爱尔兰除外),但我们在这里忽略这一点 最短的邮政编码格式是带NN的塞拉利昂 最长的是美属萨摩亚,有nnnn-NNNNNN 你应该留出一个空格或破折号 不应以空格或破折号开始或结束 这是我需要转换为dart(?I)^[a-z0-9][a-z0-9\-]{0,10}[

我正在尝试创建正则表达式来验证所有邮政编码和邮政编码格式。我找到了答案,但在dart中不起作用。以下是答案中的标准,这正是我想要的

  • 每个邮政编码系统仅使用A-Z和/或0-9,有时使用空格/破折号

  • 并非每个国家都使用邮政编码(都柏林以外的爱尔兰除外),但我们在这里忽略这一点

  • 最短的邮政编码格式是带NN的塞拉利昂

  • 最长的是美属萨摩亚,有nnnn-NNNNNN

  • 你应该留出一个空格或破折号

  • 不应以空格或破折号开始或结束

  • 这是我需要转换为dart
    (?I)^[a-z0-9][a-z0-9\-]{0,10}[a-z0-9]$

    bool isZipValid = RegExp(r"^[a-z0-9][a-z0-9\- ]{0,10}[a-z0-9]$", caseSensitive: false).hasMatch(zip);
    
    (?i)
    (不区分大小写模式)是
    格式异常的罪魁祸首:非法RegExp模式

    (?i)
    (不区分大小写模式)是
    格式异常的罪魁祸首:非法RegExp模式