在VBA Excel中单个'E'正则表达式后跟的十进制数

时间:2014-10-20 19:34:09

标签: regex excel excel-vba vba

我必须在Excel中输入所有带有十进制数字或数字的条目,然后单个“E'”。例如:9E,5.6E,6.78E ......

之后,我将删除该字母以进行其他计算。

我有代码:

Dim strEarlyOut As String
strEarlyOut = "(\d+\.?\d*)([E])"

Dim regEx As New RegExp
Set regEx = CreateObject("vbscript.regexp")

With regEx
    .IgnoreCase = False
    .MultiLine = False
    .Pattern = strEarlyOut
End With

If regEx.Test(DayWeek1(x)) Then
    MsgBox "Day " & x & ": Early out!"

'Remove 'E' for computation
 NewDayWeek1(x) = Replace(DayWeek1(x), "E", " ")

End If

问题是,在运行代码时,条目如下: 8.90EEE,7EL,6.5LEEE,只要它有E' E'以及任何数量的E'等于TRUE,我不想发生......

我的模式有什么问题?我已经测试了这样的模式:"(\ d +。?\ d *)([E] {1})"

先谢谢。

1 个答案:

答案 0 :(得分:1)

表达式:

^\d+\.?\d*?E$

这将匹配末尾只有一个“E”的字符串。