有没有比“正则表达式” 更简单直观的匹配技术?

2021-08-15 13:31:30 +08:00
 James369
正则表达式:是很强大但感觉还是稍微复杂了一点,并且可读性也有点差。

我现在有个小需求:
1. 能够匹配一行字符(就一行不超过 100 个字符,能够匹配内部的英文数字符号等各种字符)。
2. 简单直观易上手(也就是说新手小白看 5 分钟就可以上手自己编写规则)。
6597 次点击
所在节点    程序员
39 条回复
ViggoSite
2021-08-15 13:37:54 +08:00
没有,自己写一个
James369
2021-08-15 13:40:54 +08:00
@ViggoSite 你说得有道理,目前想到就是在正则表达式之上 定义一堆预制的模板,让小白直接操作模板。
不过如果需要自己定制模板,又得回到正则表达式上来。
randomboi
2021-08-15 13:40:59 +08:00
复杂的正则表达式的确可读性差,不过满足你这个小需求的应该比较简单
ch2
2021-08-15 13:49:34 +08:00
自动机本来就不是给非专业的用户用的
James369
2021-08-15 13:55:05 +08:00
@ch2 参考“少儿编程”、“汉语编程”, 在核心上套一层马甲,让非专业用户可以亲近和接触
512357301
2021-08-15 13:59:44 +08:00
正则有简写和非简写模式,非简写模式比较符合认知
简写看起来简洁,但是可读性不太好,非简写看起来冗长但是可读性好
loading
2021-08-15 14:01:17 +08:00
写一大堆 if else 然后用 find replace,清晰明了。
agagega
2021-08-15 14:02:29 +08:00
直接做成可视化吧,拖 DFA 来构造正则表达式🐶
kilasuelika
2021-08-15 14:05:12 +08:00
看看这个:Simple Regex Language
https://simple-regex.com/
xiangyuecn
2021-08-15 14:30:32 +08:00
然后做出一个比正则表达式还复杂的东西🐶
zerofancy
2021-08-15 14:51:53 +08:00
类似 word 的通配符自己撸一套?
sutra
2021-08-15 14:57:00 +08:00
@kilasuelika 这个 SRL 看着,我怎么宁愿看正则表达式呢。哈哈
MrKrabs
2021-08-15 15:05:10 +08:00
可读性不该搞个 parser 吗
Alexhex
2021-08-15 15:39:09 +08:00
正则+注释
binux
2021-08-15 15:42:21 +08:00
你这需求不完整啊,按照最小实现,精确匹配就能满足你的能够匹配一行字符,无限长度,包含内部任意字符的要求。
szzhiyang
2021-08-15 15:45:44 +08:00
没有。
szzhiyang
2021-08-15 15:47:32 +08:00
正则表达式的可读性问题可以用注释解决。
fpure
2021-08-15 15:49:02 +08:00
自己手写个有穷自动机?
wolfie
2021-08-15 15:53:41 +08:00
什么语言
Java 有个 Charmatcher
musi
2021-08-15 15:56:50 +08:00
手动用状态机写个 parser,然后再封装一层

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/795888

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX