正则表达式比较适合大众日常娱乐哇
本贴将收集各种有趣的、娱乐价值高的正则表达式 :)
近来实现一个公式编辑器的用户界面部分。
需求当然是进行用户输入的合法性检查了。
用户输入的某段公式如下:
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 编辑 ]