Невозможно реализовать регулярное выражение для строки в строке, начинается с ?
и заканчивается ;
с добавлением одинарных или двойных кавычек.
, например:
?abcdef;
'?abcdef;'
"?abcdef;"
Я пыталсяочень похоже на "^\\?([^;]+)\\;$"
, но это не сработало.
Фрагмент кода теста:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RegexTest {
public static void main(final String[] args) {
final String text = "This is param-start ?abcdef; param-end";
final String patternString = "(['\"]?)\\?.*;\\1";
final Pattern pattern = Pattern.compile(patternString, Pattern.CASE_INSENSITIVE);
final Matcher matcher = pattern.matcher(text);
System.out.println("lookingAt = " + matcher.lookingAt());
System.out.println("matches = " + matcher.matches());
}
}