gpt4 book ai didi

c# - 正则表达式 c# 涉及数字和空格

转载 作者:太空宇宙 更新时间:2023-11-03 11:27:40 25 4
gpt4 key购买 nike

以下正则表达式的作用是什么?

    \d{1,3}.?\d{0,3}\s[0-9a-zA-Z. -]{4,40} 

我知道 d 代表数字,但 1,3 有什么作用。

如果有人能进一步解释,我们将不胜感激

最佳答案

{n,m} 是一个量词,表示“至少 n 次,最多 m 次”。像所有量词一样,默认情况下它是贪婪的,对于支持它们的正则表达式方言,它也有惰性和占有性版本({n,m}?{n,m}+ 分别——不幸的是,.NET 支持前者但不支持后者。

如果n不指定,则为0;如果未指定m,则为无穷大。

这意味着您可以使用此量词“重写”经典的 *+?:

  • *{0,}
  • +{1,};
  • ?{0,1}

(注意:我认为.?中的.本来是一个字面点,这意味着它应该被转义,即\.? ;正则表达式中的点表示“任何字符”,字符类除外。)

关于正则表达式本身:

\d{1,3}        # match a digit, one to three times, followed by
.? # any character, 0 or one time (see my remark), followed by
\d{0,3} # a digit, zero to three times, followed by
\s # a space character, followed by
[0-9a-zA-Z. -] # a digit, or any letter, or a dot, or a space, or a hyphen,
{4,40} # 4 to 40 times

最后需要注意的是,.NET语言中的\d并不局限于0-9,它可以匹配其他Unicode数字。

编辑:考虑到@AlanMoore 的评论,固定的正则表达式将是:

\d{1,3}(\.\d{1,3})?\s[0-9a-zA-Z. -]{4,40}

也许这个正则表达式也应该被锚定...但这只是一个猜测。

关于c# - 正则表达式 c# 涉及数字和空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8857840/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com