正则表达式模式数字后跟一个字符
本文关键字:一个 字符 模式 数字 正则表达式 | 更新日期: 2023-09-27 18:35:36
我正在尝试使正则表达式适用于以下情况,但遇到了一些麻烦。下面是场景。
我的字符串如下所示:
"The office timing (h) is from 8h to 18h."
从上面的字符串中,我需要"8h"
和"18h"
.
到目前为止,我已经完成了这个"[0-9]*[h]"
.但这给了我"h"
、"8h"
和"18h"
。
专家有什么想法吗?
将[0-9]*[h]
替换为[0-9]+h
+
表示它必须出现一次或多次。而且用括号括起来h
也没有用,因为它是独立的。
您还可以使用'd+h
来提高可读性('d
匹配任何数字)。
将
*替换为+(加号),即
[0-9]+[H]
用正则表达式的话说:
* 表示匹配任意数量的先前令牌(包括零)
+ 表示匹配任意数量的先前令牌(至少一个)
此外,h 周围的方括号是多余的,因为您只匹配一个字符。
*
表示正则表达式中的零次或多次重复。请改为指定重复项的相关编号。
"'b'd{1,2}h'b"
'd
代表一位数字。
{1,2}
表示一两次重复('d
)。
'b
表示单词的开头或结尾(因为模式之前或后面不应有字母或数字)。
它不会找到"h"
或"123h"
或"18hertz"
.
您可以使用此正则表达式:
'b'd+h'b
即使这样也会有所帮助: [0-9][0-9]*h
这相当于[0-9]+h