home icon indicating copy to clipboard operation
home copied to clipboard

请问为什么正则表达式没有匹配上?

Open hahaleyile opened this issue 3 years ago • 7 comments

您好,我设置了 ^([a-z]+[.])+com$ 表达式来匹配 google.com,但输入 . 号时就会直接上屏。 我试过 ^([a-z]+[.])+$ 表达式是能匹配上 google. 字符串的,所以为啥上面的规则会失效。。

hahaleyile avatar Aug 22 '22 08:08 hahaleyile

因為.不是.,去看看正則的規則

LEOYoon-Tsaw avatar Aug 22 '22 12:08 LEOYoon-Tsaw

因爲自始至終都沒有輸入過 google.com ,所以不會匹配到這個表達式。

lotem avatar Aug 22 '22 19:08 lotem

因爲自始至終都沒有輸入過 google.com ,所以不會匹配到這個表達式。

是因为每输入一个字符就会尝试匹配一次吗?那我该怎么精确匹配像 com、cn 这样的顶级域名呢

hahaleyile avatar Aug 23 '22 07:08 hahaleyile

既然 ([a-z]+[.])+ 会匹配多段域名,那么末尾的顶级域名要求精确匹配 com,虽然可以实现,但是从设计角度讲,已经没有意义了。

Ace-Who avatar Aug 23 '22 13:08 Ace-Who

是因为每输入一个字符就会尝试匹配一次吗?

每次输入串变化都会尝试匹配,因为什么时候输入完成,没有信号,只有用家心里知道。

lotem avatar Aug 24 '22 03:08 lotem

既然 ([a-z]+[.])+ 会匹配多段域名,那么末尾的顶级域名要求精确匹配 com,虽然可以实现,但是从设计角度讲,已经没有意义了。

不是的。可以用宽泛的模式匹配输入过程中的前缀串,另一个模式做精确匹配,而后可以用精确匹配到的tag作进一步处理,如提示候选网址。

lotem avatar Aug 24 '22 03:08 lotem

既然 ([a-z]+[.])+ 会匹配多段域名,那么末尾的顶级域名要求精确匹配 com,虽然可以实现,但是从设计角度讲,已经没有意义了。

不是的。可以用宽泛的模式匹配输入过程中的前缀串,另一个模式做精确匹配,而后可以用精确匹配到的tag作进一步处理,如提示候选网址。

确实。

Ace-Who avatar Aug 24 '22 07:08 Ace-Who