正则表达式问题

WWW19721230 2009-01-20 04:32:42
各位大虾:
   初学正则表达式,遇到一个问题.百思不得其解.
  如下的正则表达式:.Net平台

  ^(?<OuterDia>[1-9]\d?(\.\d{1,2})?)
(\*
((?<Thickness>[1-9]\d?(\.\d{1,2})?)
|
([¢](?<InsideDia>[1-9]\d?(\.\d{1,2})?))?
)
(\*
((?<Length1>[1-9]\d+(\.\d{1,3})?)(?<IsTimes>倍?)$)
|
((?<Length1>[1-9]\d+(\.\d{1,3})?)-(?<Length2>[1-9]\d+(\.\d{1,3})?)$)
)?
)?

能够匹配我想要的大部分表达式.
如:

59
59.00
57*3.5*100000倍
57*3.5*100000.34
57*¢45*8000.50倍
就是以下的表达式不能匹配.与"$"无关.
60*3*12000-18000

请问这是为什么??
如何构建这个正则表达式呢?
谢谢
...全文
76 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wackyboy 2009-01-20
  • 打赏
  • 举报
回复

Regex re = new Regex(@"^(?<OuterDia>[1-9]\d*(\.\d{1,2})?)(\*(?<Thickness>[1-9]\d*(\.\d{1,2})?))*(倍?|-[1-9]\d*)$");

能匹配

59
59.00
57*3.5*100000倍
57*3.5*100000.34
60*3*12000-18000
不能匹配
57*¢45*8000.50倍
你的“¢”是不是写错了?

1,979

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 其他语言讨论
社区管理员
  • 其他语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧