繁体   English   中英

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

[英]Regex pattern numbers followed by a character

我正在尝试让Regex适合以下场景,但遇到一些麻烦。 以下是场景。

我的字符串看起来像这样:

"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匹配任何数字)。

*表示正则表达式中重复零次或多次。 改为指定重复的正确数字。

"\\b\\d{1,2}h\\b"

\\d代表一位数。

{1,2}表示一次或两次重复( \\d )。

\\b表示单词的开头或结尾(因为在图案之前或之后不得有字母或数字)。

它不会找到"h""123h""18hertz"

你可以使用这个正则表达式:

\b\d+h\b

用+(加号)替换*,即

[0-9] + [H]

在正则表达式中说:

*表示匹配任意数量的先前令牌(包括零)

+表示匹配任意数量的先前令牌(至少一个)

此外,h周围的方括号是多余的,因为您只匹配单个字符。

即使这样也会有所帮助: [0-9][0-9]*h相当于[0-9]+h

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM