gpt4 book ai didi

java - 匹配字符串第一次出现的位置

转载 作者:行者123 更新时间:2023-12-01 09:17:35 25 4
gpt4 key购买 nike

字符串示例:警报将从 00:00 到 05:00 保持静音。正则表达式必须匹配具有以下格式 nn:nn 的任何序列,其中 n 是数字。没问题,[0-9]{2}:[0-9]{2} 工作正常。然而,目的是分别识别每个序列00:0005:0000:0005:00 代表小时,我需要单独识别它们的原因是因为字符串必须根据相关时间进行更新。

以下正则表达式可匹配 05:00:[0-9]{2}:[0-9]{2}$。然而,对于第一个序列00:00,我能够使其工作的唯一方法是\s[0-9]{1,2}:[0-9]{2}\s,与 00:00 匹配,但两端有空格。当然这不是想要的结果,序列必须匹配,没有空格。

最佳答案

看来您的问题可以通过不同的方式解决,但您只提供了一些细节。

解决主要问题,主要是:

the sequence must be matched without whitespaces

请注意\s[0-9]{1,2}:[0-9]{2}\s包含\s作为消费模式的一部分。要仅检查空格是否存在,您应该使用lookarounds零宽度断言

(?<=\s)[0-9]{1,2}:[0-9]{2}(?=\s)

在这里,(?<=\s)要求前 1 或 2 位数字之前存在空格,但它不会消耗该空格。 (?=\s)正向先行要求在尾随 1 或 2 位数字后存在空格,并且也不会被消耗。

“消耗”是指匹配的子字符串不构成返回的匹配值的一部分。

关于java - 匹配字符串第一次出现的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40432114/

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