Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在flatter中使用regexp?_Regex_Flutter_Dart - Fatal编程技术网

如何在flatter中使用regexp?

如何在flatter中使用regexp?,regex,flutter,dart,Regex,Flutter,Dart,我想要这个格式。请看照片。 我使用这个代码 RegExp(r'^(?=.*[0-9])(?=\\S+$).{8,40}$').hasMatch(text). 这段代码适用于java,但不适用于dart。我不知道为什么?我猜可能不需要双重反斜杠,而且: ^(?=.*[0-9])(?=\S+$).{8,40}$ 可能只是工作 也许,您可能希望稍微加强/确保通过标准,可能使用类似于以下表达式: (?=.*[0-9])(?=.*[A-Za-z])(?=.*[~!?@#$%^&*_-])[A

我想要这个格式。请看照片。 我使用这个代码

RegExp(r'^(?=.*[0-9])(?=\\S+$).{8,40}$').hasMatch(text).

这段代码适用于java,但不适用于dart。我不知道为什么?

我猜可能不需要双重反斜杠,而且:

^(?=.*[0-9])(?=\S+$).{8,40}$
可能只是工作


也许,您可能希望稍微加强/确保通过标准,可能使用类似于以下表达式:

(?=.*[0-9])(?=.*[A-Za-z])(?=.*[~!?@#$%^&*_-])[A-Za-z0-9~!?@#$%^&*_-]{8,40}$
这就允许,

  • 至少一位数字
  • 至少一个大写/小写字母,以及
  • 这些字符中至少有一个:
    ~!?@$%^&*_-

如果您希望简化/修改/探索表达式,将在的右上面板中进行解释。如果您愿意,还可以在中查看它与一些示例输入的匹配情况


参考

我猜可能不需要双重反斜杠,而且:

^(?=.*[0-9])(?=\S+$).{8,40}$
可能只是工作


也许,您可能希望稍微加强/确保通过标准,可能使用类似于以下表达式:

(?=.*[0-9])(?=.*[A-Za-z])(?=.*[~!?@#$%^&*_-])[A-Za-z0-9~!?@#$%^&*_-]{8,40}$
这就允许,

  • 至少一位数字
  • 至少一个大写/小写字母,以及
  • 这些字符中至少有一个:
    ~!?@$%^&*_-

如果希望简化/修改/探索表达式,则将在右上面板中解释该表达式。如果您愿意,还可以在中查看它与一些示例输入的匹配情况


参考

谢谢Emma。这是工作。我在dart中查看了regexp文档。我不明白如何工作。再次感谢。这是工作的原因,而最初的原因是,您在dart中使用了原始字符串(“r”前缀),而您不在Java中。在原始字符串中,插值和转义被禁用,因此您的
\\S
被RegExp解析器逐字读取为转义反斜杠和大写字母“S”。如果只编写
\S
,则RegExp解析器会将其视为非空白转义代码。您需要Java(或非原始Dart字符串)中的两个反斜杠,因为字符串解析器将
\\S
转换为
\S
,然后RegExp解析器根据需要查看
\S
。谢谢Emma。这很有效。我在Dart中查看了RegExp文档。我不明白它是如何工作的。再次感谢原因,最初的情况是,您在Dart(前缀“r”)中使用原始字符串,而不是在Java中。在原始字符串中,插值和转义被禁用,因此您的
\\S
被RegExp解析器逐字读取为转义反斜杠和大写字母“S”。如果只编写
\S
,则RegExp解析器会将其视为非空白转义代码。您需要Java(或非原始Dart字符串)中的两个反斜杠,因为字符串解析器将
\\S
转换为
\S
,然后RegExp解析器根据需要查看
\S