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