VBA Excel如果在字符串开头出现数字,请替换数字的最后两位

ushi师

我试图将数字的最后两位数字替换为“ XX BLOCK”,如果它出现在字符串的开头并且超过2位数字。

我正在使用Microsoft VBScript正则表达式5.5参考。

Dim regEx As New RegExp
With regEx
    .Global = True 'Matches whole string, not just first occurrence
    .IgnoreCase = True 'Matches upper or lowercase
    .MultiLine = True 'Checks each line in case cell has multiple lines
    .pattern = "^(\d{2,})" 'Checks beginning of string for at least 2 digits
End With

'cell is set earlier in code not shown, refers to an Excel cell
regEx.replace(cell.Value, "XX BLOCK")

所需结果:

"1091 foo address"      --> "10XX BLOCK foo address"
"1016 foo 1010 address" --> "10XX BLOCK foo 1010 address"
"foo 1081 address"      --> "foo 1081 address"
"10 bar address"        --> "XX BLOCK bar address"
"8 baz address"         --> "8 baz address"

我是regex的新手,不确定从哪里开始。我尝试使用,^(\d{2,})但随后替换了整个数字。

还可以保证数字(如果存在)将始终带有空格。

维克多·史翠比维

您可以使用

^(\d*)\d{2}\b

或者,如果您不能依靠单词边界,也可以使用

^(\d*)\d{2}(?!\d) ' no digit is allowed after the 2-digit sequence
^(\d*)\d{2}(?!\S) ' a whitespace boundary

并替换为$1XX BLOCK

请参阅regex演示

细节

  • ^ -字符串开始
  • (\d*) -第1组:零个或多个数字
  • \d{2} -两位数
  • \b-字边界,无数字,字母或_在两个数字之后
  • (?!\d) -如果当前位置的右侧紧邻有一个数字,则负向预测将使匹配失败
  • (?!\S) -如果当前位置的右侧紧邻有一个非空白字符,则负匹配将使匹配失败。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果在需要字符串的地方提供了数字,则类型不匹配-Excel VBA

使用Excel-VBA从字符串中提取5位数字

颜色字符串和括号(如果在vba中其值大于0)

如果在列中找不到字符串,則 VBA 錯誤處理

如果在各种列中找不到部分字符串,则删除行:VBA

Excel VBA:如果列A包含字符串中的数字,则删除行

Excel VBA-允许字符串中的数字

VBA excel在字符串中查找数字模式

VBA Excel将数字格式化为字符串

VBA(excel) 数字作为字符串比较

excel vba只保留字符串中的数字

从字符串中提取数字 - VBA

Excel VBA复杂字符串替换

如果在vba中包含特定字符串,如何遍历单元格并创建新行?

VBA从字符串/单元格的开头删除数字

如何删除 VBA 中文本字符串末尾以数字开头的任何内容?

从Excel VBA中的字母数字字符串中提取十进制数字

Excel VBA-以0开头的字符串

如果在Excel VBA宏上使用THEN ELSE语句

Excel VBA查找并替换数字前的所有字符

正则表达式-检测并替换字符串中超过两位的数字

用两位小数点后的数字替换字符串的重复

Excel VBA另存为名称“MONTH”转换为数字(两位数)

宏VBA-比较两个字符串中的相似数字

如何在VBA中使用单引号获取Excel单元格值(如果在文本开头)

Excel VBA DoubleClick:用符号替换数字

VBA中的求和函数(数字和字符串)

vba Excel到Access:零长度字符串到Null数字

Excel VBA功能-检查字符串中的数字是否大于字母