加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 正则表达式匹配零或一次字符串

发布时间:2020-12-15 06:49:03 所属栏目:百科 来源:网络整理
导读:我一直在这个时间已经过了一个多小时,没有成功,这是我的头. 我正在尝试使一个与此字符串匹配的正则表达式{Date HH:MM:ss},但这里的技巧是HH,MM和ss是可选的,但它需要为“HH”,而不仅仅是“H”事情适用于MM和ss).如果单个“H”出现,字符串不应该匹配. 我知
我一直在这个时间已经过了一个多小时,没有成功,这是我的头.

我正在尝试使一个与此字符串匹配的正则表达式{Date HH:MM:ss},但这里的技巧是HH,MM和ss是可选的,但它需要为“HH”,而不仅仅是“H”事情适用于MM和ss).如果单个“H”出现,字符串不应该匹配.

我知道我可以使用H {2}来匹配HH,但我似乎不能使用该功能加上?匹配零或一次(零,因为它是可选的,最多一次).

到目前为止,我正在做这件事(显然不行):

Regex dateRegex = new Regex(@"{Date H{2}?:M{2}?:s{2}?}");

请帮助我,抱歉,noob问题.

FB.

下一个问题,现在我有第一个字符串的匹配,我只想采用HH:MM:ss部分,并把它放在另一个字符串(这将是一个TimeStamp对象的格式).

我用同样的方法,像这样:

Regex dateFormatRegex = new Regex(@"(HH)?:?(MM)?:?(ss)?");

但是,当我尝试“{日期HH:MM}”我没有比赛,为什么?

编辑:如果我添加这样的空间Regex dateFormatRegex = new Regex(@“(HH)?:?(MM)?:?(ss)?”);我有结果,但我不想要的空间…
我认为第一个父母需要被转义,但(在这种情况下,我不会工作,我猜是因为它不是一个字符串的一部分,而是一个关键字符.

解决方法

(H {2})?匹配零个或两个H字符.

然而,在你的情况下写两次会更可读:

Regex dateRegex = new Regex(@"{Date (HH)?:(MM)?:(ss)?}");

此外,请确保没有任何功能可用于您尝试做的任何事情.解析日期是很常见的,大多数编程语言在标准库中都有功能 – 我几乎可以打赌1k的声誉,.NET也有这样的功能.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读