正则表达式模式数字后跟一个字符

本文关键字:一个 字符 模式 数字 正则表达式 | 更新日期: 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