0

问题是我必须将数据标记为基于空格的标记,同时我不能根据特殊字符标记数据。眼下正则表达式我已经是正则表达式考虑字符串中的特殊字符

 (\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 

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

+0

在范围和'\ w'周围使用paren,但在使用'+' – dandavis

+0

之前为什么不使用。*作为整个事物,因为它会匹配任何你喜欢扔进去的字符? – grail

+0

在字符类中移动'\ w','[ - *#+ =;:\ /,〜_ \ w] +' – Toto

回答

1

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

+0

我已经尝试过提供的正则表达式,但它不符合我的要求。我已经相应地更新了要求。请看看它。 –

+0

只需删除空格,留下'([ - *#+ =;:\ /,〜_ \ w] +)''。 – Hetzroni