1.2k questions

1.4k answers

361 comments

339 users

Categories

Sidebar
0 votes
457 views
by brandon-w-8204 (34.1k points)

1 Answer

0 votes
In the below string if you do a standard greedy regex of <[\S|\s]*>" it will find the entire string. A non greedy regex "<[\S|\s]*?>" will only find the xml tags.
 
<sometag>asdfaf</sometag>
<sometag>asdfaf</sometag>
<sometag>asdfaf</sometag>
<sometag>asdfaf</sometag>
<sometag>asdfaf</sometag>
<sometag>asdfaf</sometag>
<sometag>asdfaf</sometag>
The ? in the nonGreedy regex defines it and nonGreedy.
 
Example using a javascript replace
 
//Create a Java String Note all qie functions message.getNode, qie.* functions return a Java string)
var value = new java.lang.String('<sometag>asdfaf</sometag>\n<sometag>asdfaf</sometag>\n<sometag>asdfaf</sometag>\n<sometag>asdfaf</sometag>\n<sometag>asdfaf</sometag>\n<sometag>asdfaf</sometag>\n<sometag>asdfaf</sometag>');
//Convert the java string to a javascript string
var javaScriptString = '' + value;
//do a greedy regex replace with the javascript replace
qie.debug('greedy replace:\n' + javaScriptString.replace(/(<[\S|\s]*>)/gm, ''));
//do a nonGreedy regex replace with a javascript replace
qie.debug('nongreedy replace:\n' + javaScriptString.replace(/(<[\S|\s]*?>)/gm, ''));
 
by brandon-w-8204 (34.1k points)
edited by brandon-w-8204
...