我有一个来自文本文件的行,我想只匹配第一次出现的数字而忽略第二行。 字符串如下所示:
Dauerstufe 1 a 1 a 2 a 2 a 3 a 3 a 5 a 5 a 10 a 10 a 20 a 20 a 30 a 30 a 50 a 50 a 100 a 100 a
所以我只想匹配:1 2 3 5 10 20 30 50 100
或用户可能想要输入的任何其他号码。
使用[0-9]+
非常容易匹配数字。
但是我如何让它只匹配第一个呢?
提前感谢您的帮助!
编辑:我忘了说正则表达式将在vba中使用。
答案 0 :(得分:0)
最简单的方法是使用哈希表或关联数组。
使用匹配的数字作为密钥。
下面的PHP示例:
$myarray[$x] = "";
稍后,只需循环数组的键。因为如果密钥存在它只会覆盖,你不必担心删除重复项。
答案 1 :(得分:0)
使用此(.*?)(?'first'\d{1,3})(.+?)(\k{first})( a)
答案 2 :(得分:0)
要获取您要查找的值,您还可以使用否定前瞻选择最后一次出现。
答案 3 :(得分:0)
您可以在RegExp对象上使用/[0-9]+/
regexp并设置Global
标志。
Set myRegExp = New RegExp
myRegExp.Global = True
myRegExp.Pattern = "[0-9]+"