如何仅按位置删除字符串中的字符?
How to delete chars in string by position only?
我需要一个正则表达式搜索和替换对,它将从某个可定义的位置开始从字符串中删除 'n' 个字符。例如,要删除从位置 5 开始的 3 个字符。在这种情况下,字符串
AAA. 01 Data From July
会变成
AAA. Data from July
(不知道我是否已经从 0/1 的正确位置开始计数。这就是我需要通用解决方案的原因之一。)
可以假设字符串足够长以支持操作,但如果它对太短的字符串不做任何事情就很好了。
我正在使用的应用程序有一个 VBScript 正则表达式引擎。我在网上搜索了我能想象到的关于这个请求的每一个变体,但即使有所有的正则表达式建议,这似乎也是新的。我以为这几乎是食谱。我也尝试过自己做,但无法弄清楚如何将引擎定位在捕获点。
假设您的应用程序包含配置替换的选项,您可以使用这样的反向引用替换:
(.{5}).{3}(.*)
(.{5})
匹配前 5 个字符
.{3}
消耗接下来的 3 个字符
(.*)
匹配所有剩余字符
反向引用替换</code>(取决于应用<code>\1\2
或
)将连接匹配组一和二,所以基本上删除第二个表达式的三个字符,因为他们没有组成比赛组。
有了固定的 positions/lengths 你也可以使用 Mid
函数:
Function RemoveSubstring(str, start, length)
RemoveSubstring = Mid(str, 1, start - 1) & Mid(str, start + length)
End Function
我需要一个正则表达式搜索和替换对,它将从某个可定义的位置开始从字符串中删除 'n' 个字符。例如,要删除从位置 5 开始的 3 个字符。在这种情况下,字符串
AAA. 01 Data From July
会变成
AAA. Data from July
(不知道我是否已经从 0/1 的正确位置开始计数。这就是我需要通用解决方案的原因之一。)
可以假设字符串足够长以支持操作,但如果它对太短的字符串不做任何事情就很好了。
我正在使用的应用程序有一个 VBScript 正则表达式引擎。我在网上搜索了我能想象到的关于这个请求的每一个变体,但即使有所有的正则表达式建议,这似乎也是新的。我以为这几乎是食谱。我也尝试过自己做,但无法弄清楚如何将引擎定位在捕获点。
假设您的应用程序包含配置替换的选项,您可以使用这样的反向引用替换:
(.{5}).{3}(.*)
(.{5})
匹配前 5 个字符.{3}
消耗接下来的 3 个字符(.*)
匹配所有剩余字符
反向引用替换</code>(取决于应用<code>\1\2
或)将连接匹配组一和二,所以基本上删除第二个表达式的三个字符,因为他们没有组成比赛组。
有了固定的 positions/lengths 你也可以使用 Mid
函数:
Function RemoveSubstring(str, start, length)
RemoveSubstring = Mid(str, 1, start - 1) & Mid(str, start + length)
End Function