【发布时间】:2012-09-07 21:19:44
【问题描述】:
我在下面有一个正则表达式,它适用于以下字符串示例:
-
MCCOY 3H L24 FINAL 02-28-2012.dwg或 SMITH-JOHNSON 5H R32 FINAL 05-26-2012.dwg
但现在我想弄清楚如何更改正则表达式以适用于上面的示例,如果它们是这样的:
-
MCCOY 3H L-ABC FINAL 02-28-2012.dwg或 SMITH-JOHNSON 5H R-123 FINAL 05-26-2012.dwg
他们也可以像
-
MCCOY 3H L-C2 FINAL 02-28-2012.dwg或 SMITH-JOHNSON 5H R-2 FINAL 05-26-2012.dwg
总而言之,中间部分总是有一个字母字符后跟一个破折号,然后它可能有多达3个数字或字母字符或少至 1 个数字或字母字符。
"^[a-z]+(?:[ -][a-z]+)*\s+\d+[a-z]\s+[a-z]\d+\s+[a-z]+\s+\d{2}-\d{2}-\d{4}\.dwg$"
【问题讨论】:
-
你有问题 -> 你认为是正则表达式。现在你有两个问题! ;-) - 抱歉,我无法阻止自己... (regex.info/blog/2006-09-15/247)
-
@JakubKonecki - 至少链接到引用的来源。
-
@Oded - 它可以take a long time 找出源...
-
你想用正则表达式做什么,也就是说 - 你想达到什么目的?
-
[a-z-]会将-添加到要匹配的字符类中(如果字符类以-开头或结尾,则会包含在内)。