Subject:
正则表达式比较适合大众日常娱乐哇
[Print This Page]
Author:
skyjacker
Time:
2007-4-28 23:44
Subject:
正则表达式比较适合大众日常娱乐哇
正则表达式比较适合大众日常娱乐哇
本贴将收集各种有趣的、娱乐价值高的正则表达式 :)
近来实现一个公式编辑器的用户界面部分。
需求当然是进行用户输入的合法性检查了。
用户输入的某段公式如下:
sqrt(100)*(学习+10.24)*Log(2,10)/(1.024 * Power(2,32)
+ 吃饭 * 跑步 + Log10(100) * Ln(10)
在界面部分将汉字转为系统标识,比如 C01G0001A01,其中C01是固定不变的。
sqrt(100)*(C01G0001A01+10.24)*Log(2,10)/(1.024 * Power(2,32)
+ C01G00FFA02 * C01G0066A03 + Log10(100) * Ln(10)
虽然已经使用非正则表达式的方法也基本上解决了检查的功能需求,
但是,发现使用正则表达式解析也比较有意思,因为要写出一个解决某功能的正则表达式,
单单这一行代码正则,也需要不断的测试、尝试,像猜谜似的,娱乐价值也挺高的,还能增值呢
。
对上面的问题,我们需要进行以下基本的两步解析:
1.查找 C01 开头的所有字符串
正则:C01[A-Za-z\d]{8}
C01G0001A01
C01G00FFA02
C01G0066A03
2.查找公式函数
正则:[A-Za-z]+[A-Za-z]+[\d]*\(
sqrt(
Log(
Power(
Log10(
Ln(
其实比较完美的结果应该是去了左括号,实在是不知道如何写了
附件为测试程序源代码。
[
本帖最后由 skyjacker 于 2007-4-28 23:49 编辑
]
Attachment:
正则表达式.rar
(2007-4-28 23:44, 240.75 K) / Download count 485
http://bbs.cnpack.org/attachment.php?aid=297
Image Attachment:
show.jpg
(2007-4-28 23:44, 34.12 K) / Download count 462
http://bbs.cnpack.org/attachment.php?aid=298
Author:
Passion
Time:
2007-4-29 09:38
正则表达式语法老是忘记。
Author:
kendling
Time:
2007-4-29 10:07
正则表达式每个软件都不同D的跟UltraEdit不同,跟EditPlus的也不同,其他的也一样。
Author:
zzzl
Time:
2007-4-30 10:46
写在便签上,把显示器四周都贴满,看还忘不
Author:
skyjacker
Time:
2007-4-30 11:47
Welcome to CnPack Forum (http://bbs.cnpack.org/)
Powered by Discuz! 5.0.0