[英]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.