извлеките слово между 2-м подчеркиванием и 3-м подчеркиванием или пробелом

#regex

Вопрос:

я хочу извлечь слово после 2-го и 3-го подчеркивания ( _ ) или слово между 2-м подчеркиванием и пробелом.

мои примерные данные будут:

 COL_POS_CJMA_CA_03.09.17
COL_DPU_CJER_CK_03.08.17
COL_POS_CJNE CA_03.09.2017
COL_DPU_CJEK CK_03.08.2017
 

мои результаты должны быть:

 CJMA
CJER
CJNE
CJEK
 

У меня уже есть это _[^_]*_([^_]*)_
И я мог бы извлечь первые два результата.
Если бы кто-нибудь мог помочь мне извлечь 3-й и 4-й результаты

Регулярное выражение, в котором говорится между 3-м подчеркиванием или пробелом

Ответ №1:

Вы могли бы пойти на

 ^(?:[^_] _){2}([^_ ] )
 

Смотрите демонстрацию на regex101.com.


Сломанный, это говорит:

 ^         # beginning of string
(?:       # non-capturing group
    [^_]  # not _, at least once
    _     # _
){2}      # repeat the group twice
([^_ ] )  # capture characters not _ or spaces to group 1
 

… или разделите _ и проанализируйте результат как массив, result[2] т. е.

Комментарии:

1. мне нужно извлечь даты из каждых данных.

2. @Amethyst пожалуйста, удалите свои комментарии, которые говорят «спасибо» или не относятся к этому ответу. Пожалуйста, прочитайте правила и рекомендации SO, чтобы вы знали, как вести себя в SO.