regex 我如何在正则表达式中匹配它

dsekswqp  于 2023-05-08  发布在  其他
关注(0)|答案(2)|浏览(75)

如何使用正则表达式匹配字符串以匹配以下字符的任意组合:

Y M D

也就是说,以下字符串应该匹配...,只要它包含任意数量的这些字符:

YYYYMMDD
blahYYMMDD
c:\mydir\YYYYDDMM
YYDD
DD
MMYYDD
...etc

所有这些都应该匹配...只要这些字符连续出现,它就应该匹配。regex会是什么?

vsmadaxz

vsmadaxz1#

两个或两个以上的YMD(例如,MYDDYD)?

/[YMD]{2,}/

或者你的意思是这些字母中的任何一个在一行中出现两次或更多次(即YYMMDD)?

/Y{2,}|M{2,}|D{2,}/

你也可以用一个lookahead和一个backreference来实现:

# one of [YMD] followed by another one of whichever letter matched

/([YMD])(?=\1)/
xoshrz7s

xoshrz7s2#

我不会被日期格式匹配的相似性所误导,当字符串包含Y、M和D时,以任何顺序选择你想要匹配的单词。
此:'(?=.*M)(?=.*Y)(?=.*D)'
使用正前瞻Assert。

相关问题