Код: Выделить всё
"P|1||123456||^|||U" + ProtocolASCII.LF
+ "O|1||138||||||||||||O" + ProtocolASCII.LF
+ "R|1|^^^BE(B)||mmol/L||C||||||20150819144937" + ProtocolASCII.LF
+ "R|2|^^^BEecf||mmol/L||C" + ProtocolASCII.LF
+ "R|3|^^^Ca++|1.17|mmol/L" + ProtocolASCII.LF
< /code>
где Protocolascii.lf = '\ n' < /code>. Я пишу String parser , чтобы извлечь данные из этой строки. < /p>
У меня есть разделенная строка на основе \ n < /code>, и теперь мне нужно проанализировать каждую строку для извлечения данных.
Существует ли какое -либо регулярное выражение, чтобы я мог отображать и получить желаемый результат?
для строки r | 3 | ^^^ Ca ++ | 1.17 | mmol/l "+protocolascii.lf В настоящее время я перебираю струну, как:
.String[] resultArray = dataString.split("[\\r\\n]+");
HashMap resultData = new HashMap();
List sampleResults = new ArrayList();
for (String res : resultArray) {
//Get first character of String
char startChar = res.charAt(0);
switch (startChar) {
case ProtocolASCII.STX:
//Handle Header information. This is special case
if (res.charAt(2) == ProtocolASCII.Alphabet.H
|| res.charAt(1) == ProtocolASCII.Alphabet.H) {
resultData.put(Key.MACHINE_INFO, getHeaderInfo(res));
//System.out.println(res.charAt(2));
}
break;
case ProtocolASCII.Alphabet.P:
resultData.put(Key.PATIENT, getPatientInfo(res));
break;
case ProtocolASCII.Alphabet.O:
resultData.put(Key.ORDER, getOrderInfo(res));
break;
case ProtocolASCII.Alphabet.R:
sampleResults.add(getResultInfo(res));
break;
case ProtocolASCII.Alphabet.L:
// TODO - Handle end of line
break;
}
}
< /code>
Это моя полная строка протокола ASTM: < /p>
/**
* Sample string
*/
public static final String MACHINE_STRING_ASTM = ProtocolASCII.STX + "1H|\\^&|||GEM 3000^5.6.1 ^21152^^023665^2.4|||||||||20150819154754" + ProtocolASCII.LF
+ "P|1||322061||^|||U" + ProtocolASCII.LF
+ "O|1||138||||||||||||O" + ProtocolASCII.LF
+ "R|1|^^^BE(B)||mmol/L||C||||||20150819144937" + ProtocolASCII.LF
+ "R|2|^^^BEecf||mmol/L||C" + ProtocolASCII.LF
+ "R|3|^^^Ca++|1.17|mmol/L" + ProtocolASCII.LF
+ "R|4|^^^Ca++(7.4)||mmol/L||C" + ProtocolASCII.LF
+ "R|5|^^^HCO23-||mmol/L||C" + ProtocolASCII.LF
+ "R|6|^^^HCO3std||mmol/L||C" + ProtocolASCII.LF
+ "R|7|^^^K+|5.0|mmol/L" + ProtocolASCII.LF
+ "R|8|^^^Na+|140|mmol/L" + ProtocolASCII.LF
+ "R|9|^^^SO2c||%||C" + ProtocolASCII.LF
+ "R|10|^^^TCO2||mmol/L||C" + ProtocolASCII.LF
+ "R|11|^^^THbc||g/dL||C" + ProtocolASCII.LF
+ "R|12|^^^Temp|37.0|C" + ProtocolASCII.LF
+ "L|1" + ProtocolASCII.EOT;
< /code>
Есть ли способ извлечения данных, используя регулярные выражения? < /p>
Дайте мне знать, если требуется дополнительная информация.>
Подробнее здесь: https://stackoverflow.com/questions/417 ... col-string