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', но перед' + ' – dandavis

+0

Почему бы просто не использовать. * Для всего, что будет соответствовать любому персонажу, который вы хотели бы на него наброситься? – grail

+0

Переместите '\ w' внутри класса символов,' [- * # + =;: \ /, ~ _ \ w] + ' – Toto

ответ

1

Ваше регулярное выражение соответствует «необязательному слову, затем необязательному списку специальных символов, затем другому слову». Если у вас есть два слова, нет возможности иметь специальный символ перед первым словом. Возможно, вы искали ([-*#+=;:\/,~_ \w]+).

+0

Я пробовал предоставленное регулярное выражение, но оно не соответствует моему требованию. Я соответствующим образом обновил это требование. Пожалуйста, изучите его. –

+0

Просто удалите пробел, оставив вас с '([- * # + =;: \ /, ~ _ \ w] +)'. – Hetzroni

 Смежные вопросы

  • Нет связанных вопросов^_^