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

2021 年 8 月 15 日
 James369
正则表达式:是很强大但感觉还是稍微复杂了一点,并且可读性也有点差。

我现在有个小需求:
1. 能够匹配一行字符(就一行不超过 100 个字符,能够匹配内部的英文数字符号等各种字符)。
2. 简单直观易上手(也就是说新手小白看 5 分钟就可以上手自己编写规则)。
7835 次点击
所在节点    程序员
39 条回复
SingeeKing
2021 年 8 月 15 日
@kilasuelika 这东西哪里 simple 了… 觉得学这套语法还不如直接去学正则更快一点。。。
lovelive1024
2021 年 8 月 15 日
设定好几个规则然后再转换成正则
Trim21
2021 年 8 月 15 日
glob 和扩展过的 glob 吧
jupiter157
2021 年 8 月 15 日
有两个想法,一是常用的设定别名,如 emailAddress, ipAddress
二是提供正反例,自动生成表达式。
nil333
2021 年 8 月 15 日
就我的知识水平只能说没有。如果有的话希望大佬可以 @我
akira
2021 年 8 月 15 日
那你需要 的是正则的基础功能,
那其实正则也满足你这 2 点要求了啊。。
Pagliacii
2021 年 8 月 15 日
PolarBears
2021 年 8 月 15 日
没有吧,要不看看 Grok?虽然本身也是预定义了一堆表达式的正则
https://grokdebug.herokuapp.com/patterns#
whkvf
2021 年 8 月 15 日
还是正则好了
shihira
2021 年 8 月 15 日
其实有没有可能,比如说输入一组测试样例,然后自动生成合理的正则
比如我输入 https http ftp sftp,生成`.*tps?`,但最好不要返回`https|http|ftp|sftp`或者`.*`
sky96111
2021 年 8 月 15 日
@SingeeKing 对于英语是第一语言的人确实简单了
SingeeKing
2021 年 8 月 15 日
@sky96111 #31 我的感觉一直是自然语言做确定性表达反而会更难受,因为很容易就「自己加戏」然后造成异常
discrete
2021 年 8 月 16 日
d7sus4
2021 年 8 月 16 日
就是预定义规则呗, 顶多加个组合规则.
易用性和通用性本来就是冲突的, 要想完全自定义规则, 就自己去学正则, 正则真的够好写够简洁了(只是不好读而已).
aloxaf
2021 年 8 月 16 日
@shihira grex 、regexgen

但通过 https http ftp sftp 推断出 .*tps? 是不可能的,两者范围相差太大了
raptor
2021 年 8 月 16 日
这玩意儿简单了功能就弱了,没什么意思,还不如 RE 一把梭。反正比它强的比它更复杂,比它简单的又没它强。
sky96111
2021 年 8 月 16 日
@SingeeKing 其实秉持着最简化祈使句就不容易「自己加戏」了,程序只需要做好一些同义词替换
Stain5
2021 年 8 月 16 日
英语在国内要达到 IELTS 8866 才能考虑移民,不然出去了你也无法融入
secondwtq
2021 年 8 月 17 日
Parser Combinator
不仅简单,还不比正则弱。

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

https://v2ex.xtra.eu.org/t/795888

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

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

© 2021 V2EX