计算机表达式大全
在计算机世界里,“表达式”远不止正则和Cron,它是一类用特定符号串描述规则、模式或计算的形式化语言。
除了你提到的,我按应用领域帮你梳理了这些重要的表达式:
1. 查询与检索表达式(找数据)
SQL查询表达式:如
SELECT * FROM users WHERE age > 18 ORDER BY name。它用声明式语法描述“要什么数据”,而非“怎么取”。XPath / CSS选择器:用于在HTML/XML文档中定位节点。如
//div[@class='main']/p或div.main > p。Lucene查询语法:搜索引擎内核(如Elasticsearch)使用,如
title:"机器学习" AND (tags:AI OR tags:算法)。JQ表达式:处理JSON数据的瑞士军刀,如
.users[] | select(.age>18) | .name。
2. 时间与调度表达式(定时间)
你已经提到了Cron,还有:
Quartz Cron:比Linux Cron更强大,支持秒级(如
0 0/5 * * * ?)和更复杂的日历排除。ISO 8601 重复间隔:如
R5/2026-07-03T10:00:00Z/P1D,表示从指定时间开始,每天一次,共5次。iCalendar (RFC 5545) 递归规则:如
FREQ=WEEKLY;BYDAY=MO,WE;UNTIL=20261231,常用于日历提醒。
3. 路径与格式表达式(找位置)
Glob表达式:用于匹配文件路径,比正则简单。如
src/**/*.js(匹配所有子目录下的js文件),在.gitignore和Shell中常用。JSON Path:在JSON中定位数据的XPath变体,如
$.store.book[0].title。
4. 逻辑与规则表达式(做判断)
EL (Expression Language):Java Web中常用,如
${user.name != null ? user.name : '游客'}。Spring SpEL:更强大的Spring表达式,支持调用方法和反射,如
#user.name?.toUpperCase()。Boolean表达式:用于权限或规则引擎,如
(role == 'admin' || (age > 18 && country == 'CN'))。
5. 数学与函数式表达式(算结果)
Lambda表达式:匿名函数,如
(x, y) -> x + y(Java/Python),是函数式编程的基石。数学公式字符串:如
3.14 * radius ** 2,常见于科学计算或低代码平台,需用语法解析器求值。LINQ表达式:C#中用于数据查询的表达式树,如
from p in products where p.Price > 100 select p。
6. 格式与校验表达式(定义形状)
JSON Schema:描述JSON数据结构,如
{"type": "object", "properties": {"name": {"type": "string"}}}。XML Schema (XSD):验证XML结构的规则。
Protocol Buffers (Protobuf)的
.proto定义,可以看作描述二进制数据结构的“表达式”。
7. 正则表达式的“亲戚”
通配符(Wildcard):如
*.txt,比正则弱但更轻量。模糊匹配(Fuzzy Match):在搜索引擎中用
~表示,如"hello"~2表示允许两个编辑距离的拼写错误。
