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