Проверка с помощью Regex в Java

1

Мне нужно создать регулярное выражение, которое будет проверять, что существует строка, имеющая числа, разделенные символом "," а затем после этого существует строка, разделенная символом "|" из этих чисел. Пример: 12,14,15|It is an error

Этот вышеприведенный пример представляет собой строку, которая содержит числа перед символом '|' который может иметь запятые, но не текст и текст после '|' не может содержать запятую. На данный момент я использую [0-9]+(,[0-9]+)* для чисел и ^[^,]*$ для текста и использования ,|\\| для удаления , и | для дальнейшей обработки. Но мне нужно все это в одном Regex. Может ли кто-нибудь помочь мне.

Теги:

2 ответа

0
Лучший ответ
^[0-9]+(,[0-9]+)*\|[a-zA-Z0-9]+$

Это должно сделать это.

или

^[0-9]+(,[0-9]+)*\|[^,]+$
  • 0
    Когда я даю это, String regexp = "^ [0-9] + (, [0-9] +) * \ | [^,] + $" ;, показывает недопустимую escape-последовательность (допустимыми являются \ b \ t \ n \ f \ r \ "\ '\) Синтаксическая ошибка. Как я могу это исправить?
  • 0
    @ user1311991 ^[0-9]+(,[0-9]+)*\\|[^,]+$
Показать ещё 8 комментариев
0

import java.util.regex.Matcher; import java.util.regex.Pattern;

class test {public static void main (String args []) {

  // String to be scanned to find the pattern.
  String line = "12,14,15|It is an error";
  String pattern = "^[0-9]+([^|]+)";

  // Create a Pattern object
  Pattern r = Pattern.compile(pattern);

  // Now create matcher object.
  Matcher m = r.matcher(line);
  while (m.find()) {
    System.out.println(m.group(0));
}
  // String to be scanned to find the pattern.
  String line = "12,14,15|It is an error";
  String pattern = "^[0-9]+([^|]+)";

  // Create a Pattern object
  Pattern r = Pattern.compile(pattern);

  // Now create matcher object.
  Matcher m = r.matcher(line);
  while (m.find()) {
    System.out.println(m.group(0));
}

} } }}

  • 0
    Но когда проверяется, является ли «12,14,15 | Это ошибка» допустимой строкой, возвращается false. Разве это не должно быть правдой? Это то, что я хочу проверить.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню