我有成千上万的文本行需要处理,而我感兴趣的行如下所示:
01/04/2019 09:35:41 - Test user (Additional Comments)
我目前正在使用此代码来过滤掉所有其他行:
If InStr(FullCell(i), " - ") <> 0 And InStr(FullCell(i), ":") <> 0 And InStr(FullCell(i), "(") <> 0 Then
FullCell是我正在处理的阵列。
我知道这不是最好的方法。有没有一种方法可以检查字符串开头是否有日期,格式为dd / mm / yyyy,然后提取“-”和“(”符号之间的用户名。
我在regex上玩了一下,看看是否有帮助,但是我的技能有限,无法在同一代码中实现VBA和regex。
什么是做到这一点的最佳方法。
最佳答案
假设Fullcell(i)
包含字符串,
If Left(Fullcell(i), 10) Like "##/##/####"
如果有日期,将返回
True
(请注意,它不会区分dd/mm/yyyy
和mm/dd/yyyy
。和
Mid(Fullcell(i), InStr(Fullcell(i), " - ") + 2, InStr(Fullcell(i), " (") - InStr(Fullcell(i), " - ") - 2)
将返回用户名
关于regex - 检查字符串中是否有日期,并提取字符串的一部分,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56117275/