【发布时间】:2020-07-24 06:39:03
【问题描述】:
如何在给定段落中匹配any number followed by h or t or l 之类的模式1h , 126h or 1268h 但不匹配1.1h 12.6h or 12.68h。
我正在编写一个可以将1h 替换为100 或1268h 到126800 的应用程序,这样一个人就可以简单地将h 替换为一个数字而不是输入h,但由于一些错误它也匹配十进制数字。
我写的模式是(\d+)(h|t|l)
【问题讨论】:
-
您的意思是要匹配整个字符串吗?
^(\d+)(h|t|l)$。或者,如果您可以在字符串中的任何位置使用数字,(?<!\d)(?<!\d\.)(\d+)([htl])\b。根据正则表达式的风格,(?<!\d)(?<!\d\.)可以写成(?<!\d|\d\.)甚至(?<!\d\.{0,1}) -
我想在字符串中的任何地方匹配
-
什么是正则表达式?
regexp-replace标签表示您正在使用 Oracle。是这样吗? -
我正在使用 autohotkey 不确定引擎
-
它使用 PCRE。移除标签。你可以使用
(?<!\d|\d\.)(\d+)([htl])\b
标签: regex autohotkey