- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试将以下[有效]正则表达式放入 VBA 应用程序中:
(?<year>(\d{2}){0,2}[-\/]?)(?<week>(\d{2}))
我不断收到错误 5017。对象“IRegExp2”不支持方法“执行”。
但是如果我放弃指定的捕获并插入:
((\d{2}){0,2}[-\/]?)((\d{2}))
我是否正确地假设正则表达式的“vbscript”酸味不支持命名组?
我可以在 VBA 中引用另一个标准(Windows)库来获得更好的正则表达式解析器吗?
我很想使用 C# 版本,因为它可以立即运行并将我的组撤出,但我只能使用 VBA,因为我的整个应用程序插件都在 MS Office 中。
最佳答案
YYYY-WW
(1900-01 和 2999-52 之间)的 VBA 兼容正则表达式是:
([1-2][0-9])([0-9][0-9])[-\/](0[1-9]|[1-4][0-9]|5[0-2])
这将排除第 53 周到第 99 周。
要获取世纪、年份、星期,请使用 SubMatches
集合来获取不同的捕获组。
Option Explicit
Sub TestYYYYWWRegex()
Dim objRegex As New RegExp
Dim objMatches As MatchCollection
Dim varTests As Variant
Dim varTest As Variant
Dim strMessage As String
objRegex.Pattern = "([1-2][0-9])([0-9][0-9])[-\/](0[1-9]|[1-4][0-9]|5[0-2])"
varTests = Array("2017-13", "1975-09", "2016-63", "zz78-0g", "1978-00", "1234-56", "1234-01", "YYYY-WW")
For Each varTest In varTests
Set objMatches = objRegex.Execute(CStr(varTest))
If objMatches.Count > 0 Then
With objMatches
strMessage = "Matched: " & CStr(varTest)
strMessage = strMessage & " C: " & .Item(0).SubMatches(0)
strMessage = strMessage & " Y: " & .Item(0).SubMatches(1)
strMessage = strMessage & " W: " & .Item(0).SubMatches(2)
End With
Else
strMessage = "No match for: " & CStr(varTest)
End If
'check test case
Debug.Print strMessage
Next varTest
End Sub
测试用例:
Matched: 2017-13 C: 20 Y: 17 W: 13
Matched: 1975-09 C: 19 Y: 75 W: 09
No match for: 2016-63
No match for: zz78-0g
No match for: 1978-00
No match for: 1234-56
Matched: 1234-01 C: 12 Y: 34 W: 01
No match for: YYYY-WW
关于regex - 基于 YYYY-WW 的日期的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32755808/
我需要使用正则表达式验证格式为 dd/mm/yyyy 的日期字符串。 此正则表达式验证 dd/mm/yyyy,但不验证 31/02/4500 等无效日期: ^(0?[1-9]|[12][0-9]|3[
我需要检查给定字符串的日期。我得到的字符串不规则,我不想使用 Dateformat 或类似的东西。我试图避免出现多个异常。我需要 dd.MM.yyyy 和 MM.yyyy 和 yyyy 的正则表达式。
我想使用在这里找到的 jQuery 屏蔽输入插件 http://digitalbush.com/projects/masked-input-plugin/格式化日期。 我正在从数据库中提取数据以在页面
我正在尝试以更有效的方式根据当前日期找出当前财政年度(FY - 3 月至 4 月)。这是我到目前为止写的内容 public static void main(String[] args) {
我已经搜索了该网站,但没有找到接近我需要的答案。基本上我的日期正确显示为“2013-05-09”,但我想要的是“2013 年 3 月 19 日”或使其更好“3 月 19 日, 2013 年”。 请向我
我需要使用 C# 更改日期字符串的格式 来自:“06/16/2010”或“16/06/2010” 至:“2010-06-16” 你能帮我实现这个吗 谢谢 最佳答案 如果您已经将它作为 DateTime
我正在以 MMM-yyyy 格式从 View 中提交日期值,即“Apr-2019”作为字符串。我需要将字符串值转换为 .Net 支持的日期格式,如 dd-MM-yyyy 或 yyyy-MM-dd。这里
我有一个包含以下数据的平面文件 2/12/2016 2/3/2017 12/23/2017 04/23/2017 第一个是 M/dd/yyyy,第二个是 M/d/yyyy,其余日期格式为 MM/dd/
好吧,我已经和这个战斗了足够长的时间。我有一个正则表达式 ^(1[0-2]|0[1-9]|\d)\/(20\d{2}|19\d{2}|0(?!0)\d|[1-9]\d) 这将匹配 8/15、08/15
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Extending JavaScript's Date.parse to allow for DD/MM/Y
我有 json 对象列表,其中一个字段是日期。问题是日期在 json 中以不同的方式写入。 大多数看起来像: "publishedDate": "2005-01-28" "publishedDat
这个问题已经有答案了: Generate & parse "Year-Month" values in text from Java (1 个回答) 已关闭 7 年前。 我有一个变量: YearMon
我对日期格式有一个奇怪的问题。就像,我正在使用 jquery 日期选择器,它设置为格式 dd/mm/yy。因此,当我在该字段中填写 01/09/2015 时,它应该意味着日期是 2015 年 9 月
我有以下日期, 24/04/2019 13/05/2019 12/04/2019 我想删除年份并将这些日期转换为以下格式, 24/04 13/05 12/04 这不是仅用于输出我想在该日期执行加法或申
“YYYY”和“yyyy”之间的确切区别是什么。我读过 this link ,它指出 A common mistake is to use YYYY. yyyy specifies the calen
我有一个日期列,其中日期格式为 2010-04-14 在 SQL Server 中。有没有办法将日期格式检索为 14/04/2010 在选择语句中? 最佳答案 试试这个: SELECT CONVERT
我有这个正则表达式:(\d{4})\/(\d{2,4})\/?(\w{2})?这似乎工作正常,但我想避免以下情况,例如:我有一个字符串“2020/2000/WEEEE”并且它匹配它。 它匹配的其他错误
这是用户输入日期的代码:(它必须是我的日期选择器,但表单必须将日期字段作为文本提交 - 不要问) 提交时,我在 javascript 中调用验证逻辑。我附上了当我尝试输入 01/01/2001 作为用
我正在尝试以 YYYY-YY 格式提取会计日期字符串的最后一年 (YY)。例如,这个“1999-00”的最后一年是 2000 年。 当前代码似乎涵盖了除此之外的大多数情况。 import pandas
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: Conversion of Date 我从对话框中获取的日期为:5-1-2012 - 作为字符串。 我需要将其转换为
我是一名优秀的程序员,十分优秀!