'?'之间的区别 和正则表达式中的'*'

 沫cc乀纱蔓 发布于 2023-02-13 16:23

我正在学习正则表达式,以便在lex程序中使用它们.我在这里看到,在正则表达式中:

'*' matches 0 or more occurances of pattern
'?' matches 0 or 1 occurance of the pattern

通过这个我有点困惑.我的意思是:

如果我们可以用'*'匹配0或更多,那我们为什么要使用'?' 元字符?

我们将Float定义为: FL [0-9]*"."[0-9]+

我们可以将其定义为:FL [0-9]?"."[0-9]+对于0.999或.999等数字(即,在小数点之前只有一位数的数字.)?

任何人都可以解释一下吗?提前感谢你:).

1 个回答
  • 如果要匹配0,1,2,3,4,5,6或更多次出现,请使用*.

    如果你只是想匹配0或1次出现,使用?.

    例如,请考虑以下内容: "________starts with whitespace"

    如果我想匹配该文本开头的所有下划线,但我不想要求它们在那里(它们是可选的),我会使用_*.

    相比之下,如果我只是匹配一个可选的单曲 +(比如说)"+44 20 1234 5678",我会使用\+?(一个+带有?后面的文字).那只会匹配单个+或没有,它不会匹配多个 +字符.

    2023-02-13 16:26 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有