正则表达式以考虑字符串中的特殊字符

时间:2017-02-19 10:09:18

标签: regex elasticsearch regex-negation regex-lookarounds regex-greedy

问题是我必须基于空格将数据标记为标记,同时我无法根据特殊字符标记数据。现在我的正则表达式是

       (\w*[-*#+=;:\/,~_ ]*\w+)

当我处理字符串

时这样做
    1-CHECK ON BLOCKS BELOW IF MARKET CORRECTION ARE LOADED: PCORP:BLOCK=ANCTRLG&V5PTCLG;   AF55722  BRTBMWA-3289 (AF55722) in block ANCTRLG (Product ID: CAAZ 107 4493 R1A10 )  AF55736  BRTBMWA-3290 (AF55726)in block V5PTCLG  (Product ID: CAAZ 107 4260 R2A08 )  IF MARKET CORRECTIONS ARE LOADED THEN V5 INTERFACE PROPERTY MUST BE DEFINED AS FOLLOW : MUXFIM : ACC-OFF (Accelerate Alligment is not active) WLL    : ACC-ON  (Accelerate Alligment is active ) :  EXAPC:V5ID=v5id,PROP=ACC-OFF; 

它的作用是基于空格对字符串进行标记,同时它还根据特殊字符标记数据,如

             :  EXAPC:V5ID=v5id is tokenized to :  EXAPC, :V5ID and =v5id rather want it to split as : and EXAPC:V5ID=v5id

我想避免这个任何想法,任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

你的正则表达式匹配“一个可选单词,然后是一个可选的特殊字符列表,然后是另一个单词”。如果你有两个单词,就没有选择在第一个单词之前有一个特殊字符。 您可能正在寻找的是([-*#+=;:\/,~_ \w]+)