无法增加在正则表达式匹配的第 1 组中捕获的数字

曼乔伊

我需要将文本文件中的所有数字(不是单词的一部分)加 1。我尝试使用该模式\b(\d+)\b来捕获所有这些数字,但我无法在文件中增加(向它们添加 1)它们。

输入

text1
    1 5 7
hello world 5. This is Samurai 10 not samurai10.
text2

预期产出

text1
    2 6 8
hello world 6. This is Samurai 11 not samurai10.
text2

我的尝试

const forReading = 1
set objFso = createObject("scripting.filesystemobject")
strFilePath = split(wscript.scriptFullName,wscript.scriptName)(0) & "haha.txt"
set objFile = objFso.openTextFile(strFilePath, forReading)
set objReg = new RegExp
With objReg
    .Global = True
    .ignoreCase = true
    .multiline = true
    .pattern = "\b(\d+)\b"
End With

    strTemp = objFile.readAll()
    strTemp = objReg.replace(strTemp,cint("$1")+1)      '<--Here, I am getting the "Type mismatch 'Cint'" error. I just wanted to increment the number which was captured in Group 1
    msgbox strTemp

set objFile = Nothing
set objFso = Nothing

如果我更换线strTemp = objReg.replace(strTemp,cint("$1")+1)strTemp = objReg.replace(strTemp,"_$1_"),我得到下面的输出,这意味着我能得到哪些需要递增所需的数字:

在此处输入图片说明

我只是无法增加它们。真的很感激任何帮助!!!

古尔曼乔特·辛格 |

只需替换代码:

strTemp = objReg.replace(strTemp,cint("$1")+1)

set objMatches = objReg.execute(strTemp)
for each match in objMatches
    strTemp = left(strTemp, match.firstIndex) & replace(strTemp, match.value, cInt(match.value)+1, match.firstIndex+1, 1)
next
msgbox strTemp

这是我得到的输出:

在此处输入图片说明

检查替换功能的参考

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R-替换正则表达式中的第1组匹配项,但不替换完全匹配项

在无法声明字符串的情况下,如何在 java 脚本中获取正则表达式匹配的第 1 组的结果?

用了更换整个正则表达式取代Java正则表达式的第1组

正则表达式捕获组的Julia语法是什么(例如Perl中的$ 1)?

正则表达式:如何在(1,2)(1,1)(1,1)中捕获数字

正则表达式匹配在组1中出错

如何从正则表达式匹配的数字中减去1?

Vim中的正则表达式以匹配组捕获

正则表达式仅匹配“组1”。而不是“完全匹配”

正则表达式匹配 1Y 但不匹配 Javascript 中的 1YY

正则表达式中的“或”无法获取捕获组

Python正则表达式匹配上一组中匹配的内容(多个选项中的1个)

无法匹配正则表达式组中的括号

正则表达式:捕获组中的捕获组

捕获组中的正则表达式捕获组

正则表达式匹配cond1或匹配cond2在单个命令中

1组正则表达式匹配项的matchAll数组

正则表达式以匹配在第1个pos中没有大写字符的单词和一些小写字符

用正则表达式匹配除1以外的任何数字

正则表达式匹配以许多零或空格开头的 1 到 4 位数字

正则表达式匹配1-5000之间的数字

Bash脚本正则表达式匹配1或2位数字

正则表达式匹配 x 数字和 1 个字母

的使用正则表达式连续的数字捕获组

正则表达式:数字与对捕获组的反向引用

正则表达式捕获组除以中间的数字

正则表达式在字符串中的任意位置精确匹配1

C ++ 11正则表达式:捕获替换字符串中的组后的数字

正则表达式 - 从捕获中间排除“1”或“11”