import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
public static void main(String[] args) {
final String regex = ".{1,5000}(?:\\.|;)";
final String string = "I need to modify the following script so that it says the following slogan\n\n"
+ "\"Select 5000 characters (or, failing that, no more than 5000) from the string entered in the variable (Var), but stop at the last full stop or semicolon you find\" (so, maybe select 4912 characters, for example)\n\n"
+ "In summary\n\n"
+ "up to 5000 (not beyond 5000)\n"
+ "but the limit to be selected is a full stop or a semicolon.\n\n"
+ "I think this should be done with a Regular Expression, but I don't know how I could do it;\n\n"
+ "Thank you very much in advance\n";
final Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
final Matcher matcher = pattern.matcher(string);
if (matcher.find()) {
System.out.println("Full match: " + matcher.group(0));
for (int i = 1; i <= matcher.groupCount(); i++) {
System.out.println("Group " + i + ": " + matcher.group(i));
}
}
}
}
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Java, please visit: https://docs.oracle.com/javase/7/docs/api/java/util/regex/Pattern.html