【发布时间】:2019-09-19 01:22:47
【问题描述】:
我有以下正则表达式模式,我想确保它只匹配匹配字母数字字符串的正则表达式。
^\/\[(A\-Z|a\-z|0\-9){1}(?!\1)(A\-Z|a\-z|0\-9){1}(?!\2)(A\-Z|a\-z|0\-9){1}\]\/
如果没有字符范围,只有文字字符,以防他们没有正确使用它。
^\/\[(abcdefghijklmnopqrstuvwxyz|0123456789|ABCDEFGHIJKLMNOPQRSTUVWXYZ){1}(?!\1)(abcdefghijklmnopqrstuvwxyz|0123456789|ABCDEFGHIJKLMNOPQRSTUVWXYZ){1}(?!\2)(abcdefghijklmnopqrstuvwxyz|0123456789|ABCDEFGHIJKLMNOPQRSTUVWXYZ){1}\]\/
我有一个 CTF chal,它的类编写了一个匹配字母数字字符串的正则表达式模式。我意识到不需要完整的字符,但如果他们不立即考虑字符范围,我不希望它们失败。我在扩展模式下使用 sed 手动运行它,并在线运行正则表达式,但我担心我可能错过了一些东西。
第二个正则表达式模式是第二个标志,以防它们不使用字符范围。
这不是一个“代码高尔夫”风格的问题,或者至少对我来说不是。我有一个模式,我只需要验证没有奇怪的晦涩正则表达式技巧会产生一个有效的正则表达式模式,该模式执行我告诉他们做的事情,我没有通过前面的两个模式介绍。
我应该说我添加了一个额外的正则表达式模式(因为 CTFd 允许多个模式)以任何顺序匹配 \w\d。
【问题讨论】:
标签: regex