Я пытаюсь сделать условное регулярное выражение, я знаю, что есть другие сообщения о переполнении стека, но там тоже указана c проблема.
Вопрос
Как я могу создать регулярное выражение, которое выглядит только так, чтобы соответствовать чему-либо с определенным условием?
Пример
Примером этого может быть, если у нас есть список строки ( это в java):
String nums = "42 36 23827";
, и мы хотим совпадать, только если в конце строки столько же x
, сколько там находятся в начале
Что мы хотим в этом примере
В этом примере мы бы хотели, чтобы регулярное выражение проверяло, есть ли в конце такое же количество регулярных выражений, как и в в начале. Условная часть : Если в начале есть x
, проверьте, есть ли их в конце, а если они есть, то это совпадение.
Другой пример
Примером этого может быть, если бы у нас был список чисел ( это java) в строковом формате:
String nums = "42 36 23827";
и мы хотим разделить каждое число в список
String splitSpace = "Regex goes here";
Pattern splitSpaceRegex = Pattern.compile(splitSpace);
Matcher splitSpaceMatcher = splitSpaceRegex.matcher(text);
ArrayList<String> splitEquation = new ArrayList<String>();
while (splitSpaceMatcher.find()) {
if (splitSpaceMatcher.group().length() != 0) {
System.out.println(splitSpaceMatcher.group().trim());
splitEquation.add(splitSpaceMatcher.group().trim());
}
}
Как я могу превратить это в массив, который выглядит следующим образом:
["42", "36", "23827"]
Вы можете попробовать сделать простое регулярное выражение как это:
String splitSpace = "\\d+\\s+";
Но это исключает "23827" because there is no space after it.
and we only want to match if there are the same amount of
x` в конце строки, как в начале
Что мы хотим в этом примере
В этом примере мы хотели бы получить регулярное выражение, которое проверяет, является ли это концом строки; если это так, то нам не нужно пространство, иначе нам это нужно. Как упомянул @YCF_L, мы могли бы просто сделать регулярное выражение \\b\\d\\b
, но я стремлюсь к чему-то условному.
Заключение
Итак, в результате, вопрос есть, как мы делаем условные регулярные выражения? Спасибо за чтение и ура!