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

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

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

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

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

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

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

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

© 2021 V2EX