regex - Find text between key phrases -


i have var have text in:

<cfsavecontent variable="foo"> element.password_input= <div class="holder"> <label for="$${input_id}" > $${label_text}</label> <input name="$${input_name}" id="$${input_id}" value="$${input_value}" type="password" /> </div> # end element.password_input element.text_input= <div class="ctrlholder"> <label for="$${element_id}" > $${element_label_text}</label> <input name="$${element_name}" id="$${element_id}"  value="$${element_value}" type="text"  class="textinput"  /> </div> # end element.text_input </cfsavecontent> 

and trying parse through var of different element type(s) here have far:

ar = rematch( "element\.+(.*=)(.*?)*", foo ) 

but giving me part:

element.text_input= element.password_input= 

any appreciated.

your immediate problem default . doesn't include newlines - need use flag (?s) in regex this.

however, enabling flag still wont result in present regex doing you're expecting do.

a better regex be:

(element\.\w+)=(?:[^##]+|##(?! end \1))+(?=## end \1) 

you listfirst(match[i],'=') , listrest(match[i],'=') name , value. (rematch doesn't return captured groups).

(obviously #s above doubled escape them cf.)


above regex dissected is:

(element\.\w+)= 

match element. , alphanumeric, placed capture group 1, match = character.

(?:     [^##]+ |     ##(?! end \1) )+ 

match number of non-hash characters, or hash not followed ending token (using negative lookahead (?!...)) , referencing capture group 1 (\1), repeat many times possible (+), using non-capturing group ((?:...)).

(?=## end \1) 

lookahead (?=...) confirm variable's ending token present.


Comments

Popular posts from this blog

SPSS keyboard combination alters encoding -

Add new record to the table by click on the button in Microsoft Access -

javascript - jQuery .height() return 0 when visible but non-0 when hidden -