RegEx用于匹配变量部分然后在字符串中

时间:2017-09-01 10:40:46

标签: c# regex performance

我有一个超过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]“

以下是以不同方式解析的示例代码段:

.*

0 个答案:

没有答案