regex - 检查字符串中有一个日期并提取部分字符串
问题描述
我有数千行需要处理的文本以及我感兴趣的行,如下所示:
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,然后在“-”和“(”符号之间提取用户名。
我玩了正则表达式,看看是否有帮助,但我的技能有限,无法在同一代码中同时实现 VBA 和正则表达式。
什么是最好的方法来做到这一点。
解决方案
假设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)
将返回用户名
推荐阅读
- r - 为 tint 包安装缺少的 *.sty
- c - 具有交错模式的 STM32 ADC 上的奇怪问题
- ffmpeg - 如何将 .mkv 文件拆分为声音和视频文件?
- c# - WPF 绑定延迟
- javascript - 如何编辑此代码以使结果显示在页面的“部分”中
- scheme - 如何在 The Reasoned Schemer 中解释 run 5 (x) g0 g1
- sproutcore - 绑定2个模型
- java - jhipster,Java端的admin角色识别
- pandas - 无法使用重命名重命名熊猫中的列
- .net - 我的 Nginx 如何使用不同的 .net 核心应用程序在端口 8880 和 80 上工作