正则表达式排除 4 个重复字符系列但捕获 2 个重复字符
RegEx to Exclude series of 4 repeating characters but catch 2 repeating characters
尝试在 JavaScript 中提出一个流程来帮助在不同的技术堆栈之间转换自定义日期格式,以便它们都以相同的方式解析和显示所有内容。
我无法想出一个好的 RegEx 来转换,
"dddd, dd/MM/yyyy"
到 "dddd, DD/MM/yyyy"
还有,
"ddd, dd/MM/yyyy"
到 "ddd, DD/MM/yyyy"
我已经尝试过否定前瞻并且知道我可以做一些类似 (?!d{3,4})
的事情来排除 dddd 和 ddd 的集合。我知道我也可以做 d{1,2}
来赶上 dd。但是当我把它们放在一起时,作为 /(?!d{3,4})(d{1,2})/g
它也会在 dddd 中捕获最后两个 dd 并给我
"ddDD, DD/MM/yyyy"
我四处搜索示例并能够修改一个以获得此 RegEx 表达式,
/(?=\b|^)(?!d*([d])\w*)d+(?:\b|$)/g
这就是我需要的,但我真的不明白它是如何捕捉第一组等的。有没有一种方法可以根据我的需要对其进行简化,或者有更简单的方法吗?
/(?=\b|^)(?!d*([d])\w*)d+(?:\b|$)/g
正则表达式只匹配 dd
作为一个完整的词。
\b
(当后面跟一个单词 char 时)也匹配字符串的开头,因此,使用 (?=\b|^)
没有意义,它与 ^
相同。
否定前瞻末尾的 \w*
不是必需的,它是多余的,就像否定前瞻中的任何其他可选子模式一样。
因此,您可以使用 /\bdd\b/g
。
尝试在 JavaScript 中提出一个流程来帮助在不同的技术堆栈之间转换自定义日期格式,以便它们都以相同的方式解析和显示所有内容。
我无法想出一个好的 RegEx 来转换,
"dddd, dd/MM/yyyy"
到 "dddd, DD/MM/yyyy"
还有,
"ddd, dd/MM/yyyy"
到 "ddd, DD/MM/yyyy"
我已经尝试过否定前瞻并且知道我可以做一些类似 (?!d{3,4})
的事情来排除 dddd 和 ddd 的集合。我知道我也可以做 d{1,2}
来赶上 dd。但是当我把它们放在一起时,作为 /(?!d{3,4})(d{1,2})/g
它也会在 dddd 中捕获最后两个 dd 并给我
"ddDD, DD/MM/yyyy"
我四处搜索示例并能够修改一个以获得此 RegEx 表达式,
/(?=\b|^)(?!d*([d])\w*)d+(?:\b|$)/g
这就是我需要的,但我真的不明白它是如何捕捉第一组等的。有没有一种方法可以根据我的需要对其进行简化,或者有更简单的方法吗?
/(?=\b|^)(?!d*([d])\w*)d+(?:\b|$)/g
正则表达式只匹配 dd
作为一个完整的词。
\b
(当后面跟一个单词 char 时)也匹配字符串的开头,因此,使用 (?=\b|^)
没有意义,它与 ^
相同。
否定前瞻末尾的 \w*
不是必需的,它是多余的,就像否定前瞻中的任何其他可选子模式一样。
因此,您可以使用 /\bdd\b/g
。