Eden Morris Posted September 16, 2013 Posted September 16, 2013 I am trying to use the replaceAll() function on some text. If I insert the code as an input variable the code doesn't work. But if I copy the code text right into the script it works just fine. How should I format this so that it works?
john renfrew Posted September 16, 2013 Posted September 16, 2013 you are passing a string with a comma in, the function requires two values try this import java.util.regex.* text = 'Test One Two' code = 'One,Box' regex = rep.split(',') result = text.replaceAll(regex[0], regex[1] )
Eden Morris Posted September 17, 2013 Author Posted September 17, 2013 much better! thanks! I made it much simpler though...
john renfrew Posted September 17, 2013 Posted September 17, 2013 Eden The error message gives the clue as to what is expected, and what was given... You will notice that the 'method' replaceAll can take different types of arguments as well as the simple string, string you are using. But everything you pass to the Groovy comes in as a string and needs to be converted to the required object first. This method would allow you to use a Regex as the first input - but only if you created a regex.Pattern object from the string first, otherwise it would literally look for say 'd+t' in the text rather than digit(s) followed by a tab character. import java.util.regex.Pattern pattern = 'd+t' regex = Pattern.compile(pattern) The Groovy pages have a great example with closure as the second argument which capitalises each word and makes the rest of it lowercase text.replaceAll('w+', { it[0].toUpperCase() + ((it.size() > 1) ? it[1..-1].toLowerCase() : '') })) This says for each word (w+), take the first character (it[0]) and Uppercase it, then if the size of the word is more than 1 (it.size() > 1) add the second to the last characters (it[1..-1]) lowercased to it else add nothing (: '')
Recommended Posts
This topic is 4097 days old. Please don't post here. Open a new topic instead.
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now