I'm generating a XML file to make payments and I have a constraint for user's full names. That param only accept alphabet characters (a-ZAZ) + whitespaces to separe names and surnames.
I'm not able to filter this in a easy way, how can I build a regular expression or a filter to get my desireable output?
Example:
'Carmen López-Delina Santos' must be 'Carmen LopezDelina Santos'
I need to transform vowels with decorations in single vowels as follows: á > a, à > a, â > a, and so on; and also remove special characters as dots, hyphens, etc.
Thanks!
You can first use a Normalizer and then remove the undesired characters:
String input = "Carmen López-Delina Santos";
String withoutAccent = Normalizer.normalize(input, Normalizer.Form.NFD);
String output = withoutAccent.replaceAll("[^a-zA-Z ]", "");
System.out.println(output); //prints Carmen LopezDelina Santos
Note that this may not work for all and any non-ascii letters in any language - if such a case is encountered the letter would be deleted. One such example is the Turkish i.
The alternative in that situation is probably to list all the possible letters and their replacement...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With