![]() | 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 ![]() 直接做成可视化吧,拖 DFA 来构造正则表达式 |
9 kilasuelika 2021-08-15 14:05:12 +08:00 via Android ![]() 看看这个:Simple Regex Language https://simple-regex.com/ |
![]() | 10 xiangyuecn 2021-08-15 14:30:32 +08:00 ![]() 然后做出一个比正则表达式还复杂的东西 |
![]() | 11 zerofancy 2021-08-15 14:51:53 +08:00 via Android 类似 word 的通配符自己撸一套? |
![]() | 12 sutra 2021-08-15 14:57:00 +08:00 ![]() @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 PRO ![]() @kilasuelika 这东西哪里 simple 了… 觉得学这套语法还不如直接去学正则更快一点。。。 |
![]() | 22 lovelive1024 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 ![]() |
![]() | 28 PolarBears 2021-08-15 20:25:11 +08:00 ![]() 没有吧,要不看看 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 PRO @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 ![]() |
![]() | 36 raptor 2021-08-16 09:24:26 +08:00 ![]() 这玩意儿简单了功能就弱了,没什么意思,还不如 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 不仅简单,还不比正则弱。 |