正则表达式:是很强大但感觉还是稍微复杂了一点,并且可读性也有点差。
我现在有个小需求:
1. 能够匹配一行字符(就一行不超过 100 个字符,能够匹配内部的英文数字符号等各种字符)。
2. 简单直观易上手(也就是说新手小白看 5 分钟就可以上手自己编写规则)。
我现在有个小需求:
1. 能够匹配一行字符(就一行不超过 100 个字符,能够匹配内部的英文数字符号等各种字符)。
2. 简单直观易上手(也就是说新手小白看 5 分钟就可以上手自己编写规则)。
1
ViggoSite Aug 15, 2021
没有,自己写一个
|
2
James369 OP @ViggoSite 你说得有道理,目前想到就是在正则表达式之上 定义一堆预制的模板,让小白直接操作模板。
不过如果需要自己定制模板,又得回到正则表达式上来。 |
3
randomboi Aug 15, 2021
复杂的正则表达式的确可读性差,不过满足你这个小需求的应该比较简单
|
4
ch2 Aug 15, 2021
自动机本来就不是给非专业的用户用的
|
6
512357301 Aug 15, 2021 via Android
正则有简写和非简写模式,非简写模式比较符合认知
简写看起来简洁,但是可读性不太好,非简写看起来冗长但是可读性好 |
7
loading Aug 15, 2021
写一大堆 if else 然后用 find replace,清晰明了。
|
8
agagega Aug 15, 2021 via iPhone 直接做成可视化吧,拖 DFA 来构造正则表达式🐶
|
9
kilasuelika Aug 15, 2021 via Android 看看这个:Simple Regex Language
https://simple-regex.com/ |
10
xiangyuecn Aug 15, 2021 然后做出一个比正则表达式还复杂的东西🐶
|
11
zerofancy Aug 15, 2021 via Android
类似 word 的通配符自己撸一套?
|
12
sutra Aug 15, 2021 @kilasuelika 这个 SRL 看着,我怎么宁愿看正则表达式呢。哈哈
|
13
MrKrabs Aug 15, 2021
可读性不该搞个 parser 吗
|
14
Alexhex Aug 15, 2021
正则+注释
|
15
binux Aug 15, 2021 via Android
你这需求不完整啊,按照最小实现,精确匹配就能满足你的能够匹配一行字符,无限长度,包含内部任意字符的要求。
|
16
szzhiyang Aug 15, 2021
没有。
|
17
szzhiyang Aug 15, 2021
正则表达式的可读性问题可以用注释解决。
|
18
fpure Aug 15, 2021
自己手写个有穷自动机?
|
19
wolfie Aug 15, 2021
什么语言
Java 有个 Charmatcher |
20
musi Aug 15, 2021
手动用状态机写个 parser,然后再封装一层
|
21
SingeeKing PRO @kilasuelika 这东西哪里 simple 了… 觉得学这套语法还不如直接去学正则更快一点。。。
|
22
lovelive1024 Aug 15, 2021
设定好几个规则然后再转换成正则
|
23
Trim21 Aug 15, 2021 via Android
glob 和扩展过的 glob 吧
|
24
jupiter157 Aug 15, 2021 via iPhone
有两个想法,一是常用的设定别名,如 emailAddress, ipAddress
二是提供正反例,自动生成表达式。 |
25
nil333 Aug 15, 2021
就我的知识水平只能说没有。如果有的话希望大佬可以 @我
|
26
akira Aug 15, 2021
那你需要 的是正则的基础功能,
那其实正则也满足你这 2 点要求了啊。。 |
27
Pagliacii Aug 15, 2021 |
28
PolarBears Aug 15, 2021 没有吧,要不看看 Grok?虽然本身也是预定义了一堆表达式的正则
https://grokdebug.herokuapp.com/patterns# |
29
whkvf Aug 15, 2021 via Android
还是正则好了
|
30
shihira Aug 15, 2021
其实有没有可能,比如说输入一组测试样例,然后自动生成合理的正则
比如我输入 https http ftp sftp,生成`.*tps?`,但最好不要返回`https|http|ftp|sftp`或者`.*` |
31
sky96111 Aug 15, 2021
@SingeeKing 对于英语是第一语言的人确实简单了
|
32
SingeeKing PRO @sky96111 #31 我的感觉一直是自然语言做确定性表达反而会更难受,因为很容易就「自己加戏」然后造成异常
|
33
discrete Aug 16, 2021
|
34
d7sus4 Aug 16, 2021
就是预定义规则呗, 顶多加个组合规则.
易用性和通用性本来就是冲突的, 要想完全自定义规则, 就自己去学正则, 正则真的够好写够简洁了(只是不好读而已). |
36
raptor Aug 16, 2021 这玩意儿简单了功能就弱了,没什么意思,还不如 RE 一把梭。反正比它强的比它更复杂,比它简单的又没它强。
|
37
sky96111 Aug 16, 2021 via Android
@SingeeKing 其实秉持着最简化祈使句就不容易「自己加戏」了,程序只需要做好一些同义词替换
|
38
Stain5 Aug 16, 2021
英语在国内要达到 IELTS 8866 才能考虑移民,不然出去了你也无法融入
|
39
secondwtq Aug 17, 2021
Parser Combinator
不仅简单,还不比正则弱。 |