다음과 같은 문자열이 있습니다. i는 상기 문자열을 발생할 때마다자바가있는 정규식
$Alarm:com.Alarm(a == 123 || (count == 12345 || (time matches "24" && pqr =="1")))
$Event:com.Event(b == 123 || (co == 12345 || (time matches "204" && pqr =="22")))
은 내가 문자열 아래 $Event:com.Event(...)
위한 문자열 $Alarm:com.Alarm(...)
및 "from EventStream"
"from AlarmStream"
의 문자열을 추가해야 의미 다음 string.I를 생성 할 필요가있다.
$Alarm:com.Alarm(a == 123 || (count == 12345 || (time matches "24" && pqr =="1"))) from AlarmStream
$Event:com.Event(b == 123 || (co == 12345 || (time matches "204" && pqr =="22"))) from EventStream
현재 다음 패턴을 사용하여 java에서 동일하게 처리합니다.
Pattern alarmPattern = Pattern.compile(".*?\\.Alarm\\(([^\\(]*?|\\([^\\)]*?\\))*\\)");
Pattern eventPattern = Pattern.compile(".*?\\.Event\\(([^\\(]*?|\\([^\\)]*?\\))*\\)");
올바른 출력을 얻지 못하고 있습니다.
올바른 출력을 얻으려면 몇 가지 포인터를 제공하십시오. 정규 표현식은 마지막 괄호 만 고려해야하며 여기서 왼쪽 및 오른쪽 괄호 쌍의 수는 고정되어 있지 않습니다. 증가 또는 감소 할 수 있습니다. 논리가 작동해야합니다. 왼쪽 및 오른쪽 괄호 쌍의 수에는 제한이 없습니다.
하면 알람 및 파일에 이벤트 객체를 저장하고 있습니까? java.util.Properties (사람이 읽을 수있는 텍스트 프로퍼티의 경우) 및 java.io.Serializable를 참조하십시오. XML 직렬화를위한 JAXB도 있습니다. – ignis