Мне нужно создать регулярное выражение, которое будет проверять, что существует строка, имеющая числа, разделенные символом ","
а затем после этого существует строка, разделенная символом "|"
из этих чисел. Пример: 12,14,15|It is an error
Этот вышеприведенный пример представляет собой строку, которая содержит числа перед символом '|'
который может иметь запятые, но не текст и текст после '|'
не может содержать запятую. На данный момент я использую [0-9]+(,[0-9]+)*
для чисел и ^[^,]*$
для текста и использования ,|\\|
для удаления ,
и |
для дальнейшей обработки. Но мне нужно все это в одном Regex. Может ли кто-нибудь помочь мне.
^[0-9]+(,[0-9]+)*\|[a-zA-Z0-9]+$
Это должно сделать это.
или
^[0-9]+(,[0-9]+)*\|[^,]+$
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-9]+(,[0-9]+)*\\|[^,]+$