Flutter 如何在flifter中仅将空格和字母与正则表达式匹配?

Flutter 如何在flifter中仅将空格和字母与正则表达式匹配?,flutter,Flutter,有这个输入吗 2019-12-04T21:24:24 or 2019-12-04 21:24:24 我试图匹配“T”是否存在或“”是否存在 我看到两种解决办法 在10和11之间匹配所有长度 只匹配字母和空格 我试过了,但什么也没发生 ^[a-zA-Z]{10,11}$ ^.{10,11}$ 我认为您的正则表达式中有一个误解:您所写的意思是“输入是否相当于连续的10或11个字符?”,这在DateTime中总是错误的。您应该选择第11个字母,然后检查此字符是否匹配(T |\s)(字母T或空格)。

有这个输入吗

2019-12-04T21:24:24 or 2019-12-04 21:24:24
我试图匹配“T”是否存在或“”是否存在

我看到两种解决办法

在10和11之间匹配所有长度 只匹配字母和空格

我试过了,但什么也没发生

^[a-zA-Z]{10,11}$
^.{10,11}$

我认为您的正则表达式中有一个误解:您所写的意思是“输入是否相当于连续的10或11个字符?”,这在DateTime中总是错误的。您应该选择第11个字母,然后检查此字符是否匹配
(T |\s)
(字母T或空格)。

您需要

^[0-9]{4}-[0-9]{2}-[0-9]{2}[T][0-9]{2}:[0-9]{2}:[0-9]{2}$

详细信息

  • ^
    -字符串的开头
  • [0-9]{4}-[0-9]{2}-[0-9]{2}
    -四位,
    -
    ,两位,
    -
    ,两位
  • [T]
    -
    T
    或空格
  • [0-9]{2}:[0-9]{2}:[0-9]{2}
    -两位数,
    ,两位数,
    ,两位数
  • $
    -字符串结束

看起来您正在尝试解决日期时间问题。您对日期时间的实际问题是什么?我在Iso8601中保存了两个日期,一个是标准日期。Iso8601的特征是T,标准是空白,所以我需要匹配这个差异,以使好的计算转换Iso8601到标准可以是一个解决方案上一个,你可以只检查输入是否包含“T”正确。不可能有另一个“T”字符存在!如果它包含“T”,那么你就知道它只有空格yes或空格,但是如果只匹配(T),当我有空格时,我的代码在正则表达式中中断,因为数学是空的。因此,我搜索一个匹配T或空格的表达式,以避免中断代码可能^^^^我在理解正则表达式机制方面有很多困难。我在网上找到了一些和我的问题很接近的例子,但我不明白,我花了太多时间搜索,所以我请求帮助:)我尝试了^(T|\s)$,但没有用这个输入2019-12-04T24:12:02如果我这样写(T|\s+)我同意:)简而言之:——
^
定义要检查的字符串的开头,
$
定义结尾-
\s
是空格字符,
\d
任何数字字符和
\w
任何“文字”字符-检查单词是字母还是数字,检查它是否符合模式
[a-zA-Z0-9]
(小写或大写字母,或数字)-您可以通过在后面写
{m,n}
来检查它是否是相同模式的连续(意味着您的单词包含的字符数介于
m
n
之间)或仅
{n}
如果
m==n
。希望它能总结您的搜索:)
\s+
表示您正在查找未定义数量的连续空格,至少一个空格。你的答案是正确的,我已经更新了我的答案:)