gpt4 book ai didi

用于捕获时间的正则表达式在冒号前没有两位数,只有一位

转载 作者:行者123 更新时间:2023-12-01 07:40:01 24 4
gpt4 key购买 nike

我的正则表达式似乎应该可以工作,但返回了意想不到的结果。

我正在使用 R。如果您不使用那些不用担心,我认为这与其他一些正则表达式非常相似。和 R 文档说 {n,m} 语法应该有效:“{n,m}前一项至少匹配n次,但不超过m次。"

re <- ".*\\s*(\\d{1,2}:\\d{2}\\s*[APM]{2})\\s*\\s*([Aa]lbuterol|[Pp]rednison).*(per order[s]*)\\s*.*"

我想从一些自由文本注释中捕捉药物给药的时间(例如上午 10:47、凌晨 3:04)。

我现在是凌晨 3:04 还好,但是对于上午 10:47,我现在是凌晨 0:47。我现在已经尝试了很多不同的东西,但出于某种原因无法让第一个数字过来。知道我做错了什么吗?

最佳答案

开头的 .* 是贪心的,所以 .*\\s* 匹配所有直到并包括时间的第一位数字(最长的它可以采取并仍然找到匹配项)。请改用 [^\\d]*\\s*

关于用于捕获时间的正则表达式在冒号前没有两位数,只有一位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27488629/

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