【发布时间】:2012-01-16 10:05:21
【问题描述】:
如何使用正则表达式匹配字符串以匹配以下字符的任意组合:
Y M D
也就是说,以下字符串应该匹配...只要它包含任意数量的这些字符:
YYYYMMDD
blahYYMMDD
c:\mydir\YYYYDDMM
YYDD
DD
MMYYDD
...etc
所有这些都应该匹配...只要这些字符连续出现,它就应该匹配。正则表达式是什么?
【问题讨论】:
-
这些都不是我真正想要的。我想匹配(并提取)包含“Y”、“M”或“D”字符的任意组合的任何子字符串,我只想提取 Y、M、D 字符。它们可以是任意数量、任意组合,但只要 Y、M 或 D 字符包含在连续字符串中,我想提取该连续字符串。因此,在我的示例中,返回的值将是:“YYYYMMDD”、“YYMMDD”、“YYYYDDMM”、“YYDD”、“DD”、“MMYYDD”
-
我想通了,如果我想提取那部分,那么正则表达式将是:([YMD]+)/
-
你看到我的
/[YMD]{2,}/的第一个例子了吗?我认为这正是你所要求的。除非您还只想匹配一个字符(不是 2 个或更多),在这种情况下您是对的:/[YMD]+/。
标签: regex