我有一个超过100条消息的列表,我需要识别特定消息及其发生。
为此,我创建了一个 正则表达式 来匹配这些 随机消息 ,方法是放置{{ 1}}在消息的变量部分,如下所示:
CheckConvexity:Zone =
*
,Surface =*
是非凸的。 ...顶点*
到 顶点*
到顶点*
...顶点*
= [*
] ...顶点*
= [*
] ...顶点*
= {[{1}}]
稍后我在*
的地方替换正则表达式模式量词/文字以使其工作,但匹配1000条消息与1000个查找正则表达式字符串需要花费太多时间:
*
*
CheckConvexity:\ Zone=.*,\ Surface=.*\ is\ non-convex\.\ \
正在运行示例:https://regex101.com/r/pX9jvD/1
后来我将\.\.\.vertex\ .*\ to\ vertex\ .*\ to\ vertex\ .*\ \ \.\.\.vertex\
替换为.*=\[.*\]\ \ \.\.\.vertex\ .*=\[.*\]\ \ \.\.\.vertex\ .*=\[.*\]
,但它只匹配变量部分,直到出现任何空格,因此它会因更多消息而失败。这种方式模式匹配过快,消息以照明速度进行解析。
让我的消息如下所示,那么字符串的变量部分的正则表达式模式应该是什么,它匹配任何影响模式匹配性能的字符:
“CheckConvexity:Zone = CEILING VOID ZONE STORY 1,Surface = CEILING VOID 工作人员卧室:SLAB 2.2是非凸的。 ...顶点2到顶点3到 顶点4 ...顶点2 = [ - 9.59,21.59,3.90] ...顶点 3 = [ - 6.73,24.45,3.90] ......顶点4 = [ - 8.13,25.85,3.90]“
以下是以不同方式解析的示例代码段:
.*