如何在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}$
这就允许,
- 至少一位数字
- 至少一个大写/小写字母,以及
- 这些字符中至少有一个:
~!?@$%^&*_-代码>
如果希望简化/修改/探索表达式,则将在右上面板中解释该表达式。如果您愿意,还可以在中查看它与一些示例输入的匹配情况
参考
\\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
。