目前,我有一个表,保存端点中每个更改的日志,但是我需要在屏幕上向用户显示哪个端点已经更改,哪个id已经发送。我现在有这些例子:
/管理员/帐户/机器人/6/布局/属性
/admin/bot/4/block/content/button/34/标签
/管理员/bot/4/block/content/text/18/message
可以使用正则表达式对每个端点进行分类,例如:
/admin/account/bot/6/layout/properties
name: Update Bot properties
BotId: 6
/admin/bot/4/block/content/text/18/message
name: Update message in Text
BotId: 4
TextId: 18
提取每个值?
谢谢。
2条答案
按热度按时间dkqlctbz1#
取决于要匹配的字符串的确切结构;不是每件事都有规律。这里的基本方法是:
等等。
试图让一个regexp抓住一切似乎。。。不明智的。要想弄清楚哪个组去了哪里,这是一件很麻烦的工作,而其中一个结构中的更新则需要更新所有代码。有一些方法可以命名组,这是一个小小的改进,但是您仍然可以看到一个巨大的regexp。如果目标是“通过运行更少的代码让它运行得更快”,我有个坏消息。regexp对性能没有任何保证,如果使用某些regex特性,则最坏的情况是o(n^2)。如果你想要速度,就远离他们,或者至少是一个Maven,这样你就知道什么和如何让他们跑得快。
5kgi1eie2#
我不知道有什么简单的方法来生成您在这里期望的确切名称,但是对于键值对,regex模式匹配器可以处理这个问题:
这张照片: