/ / Regex Abbina il testo tra 2 caratteri - java, regex

Regex Abbina il testo tra 2 caratteri - java, regex

Ho questo tipo di linea:

#RT_POOL_CELL1_1 : RT_CELL_T :=  (NEXT     => 0,

#RT_IS_OK                   : BOOLEAN := TRUE;
#RT_RESULT_UPDATE_TM_INFO.TC_INFO : PUS.TYPES.RESULT_UPDATE_TM_INFO_T := PUS.TYPES.UPDATE_OK;

E ho bisogno di prendere RT_POOL_CELL1_1, RT_IS_OK e RT_RESULT_UPDATE_TM_INFO (senza il punto .TC_INFO) in java con regex.

Ho provato a farlo con questa regex: s * [#] [[: ascii:]] s * [: |.]

Ma non funziona, la cosa da sapere è che la parola che devo prendere è sempre tra # e:, possono contenere lo spazio tra la parola e il segno e, se c'è un., Giustifico prendere la parola prima del punto.

Grazie per l'aiuto.

risposte:

2 per risposta № 1

È possibile utilizzare questo regex basato su lookaround:

(?<=#)[^:.]+?(?= *[:.])

Rottura di regex:

(?<=#)     # makes sure there is preceding #
[^:.]+?    # match anything but : or . (non-greedy)
(?= *[:.]) # makes sure this is followed by 0 or more spaces and : or .

Demo RegEx


1 per risposta № 2

Per abbinare la parola:

(?<=#)[^: .]+(?=.*:)

Vedere dimostrazione dal vivo.