Регулярное выражение для получения строковых значений
Я новичок в регулярных выражениях. И мне нужно регулярное выражение для следующей строки
1) Свойство NodeDisplacements.Dx выходит за пределы допустимого допуска (узел № 49, случай загрузки 1).
Ожидается: 0.2524431049823761 д +/- 0.01 D или 0.2524431049823761 д +/- 2.0 D процентов
Но было: 0.24117276072502136 d
2) Собственность MemberEndForces.Fx выходит за пределы допустимого допуска (Балка № 1, грузовой отсек 1, конец балки EndB).
Ожидается: -1.166001558303833 д +/- 0.001 D или -1.166001558303833 д +/- 2.0 D процентов
Но было: -1.1420921087265015 d
3)Собственность MemberSectionForces.Mz выходит за пределы допустимого допуска (Балка № 33, грузовой отсек 1).
Ожидается: &ЛТ; 60.961132049560547 д 50.785896301269531 д 40.610660552978516 д 30.4354248046875 д 20.260189056396484 д 10.084957122802734 д -0.090282440185546875 д -10.265514373779297 д -20.440753936767578 д -30.615993499755859 д -40.791217803955078 д -50.966464996337891 д -61.141693115234375 д &ГТ; +/- 0.01 D или &ЛТ; 60.961132049560547 д 50.785896301269531 д 40.610660552978516 д 30.4354248046875 д 20.260189056396484 д 10.084957122802734 д -0.090282440185546875 д -10.265514373779297 д -20.440753936767578 д -30.615993499755859 д -40.791217803955078 д -50.966464996337891 д -61.141693115234375 д &ГТ; +/- 3.0 d процентов
Но: &ЛТ; 61.908939361572266 д 51.576515197753906 д 41.244094848632812 д 30.911674499511719 д 20.579250335693359 д 10.246833801269531 д -0.085590362548828125 д -10.418010711669922 д -20.750438690185547 д -31.082859039306641 д -41.415271759033203 д -51.747707366943359 д -62.080116271972656 д &ГТ;
Строковая переменная содержит любое из вышеперечисленных значений.Таким образом,я прочитал номер узла,случай загрузки, ожидаемое и но было значение в 1-м случае. а во 2-м случае номер луча (так как номер узла там отсутствует) и все упомянутое в случае 1. а в 3-м случае нужно прочитать все ожидаемое и но было значение.
Ожидаемый результат:
1) номер узла 49 load case 1 ожидаемый: 0.2524431049823761 допуск:0.01 процент допуска :2.0 но был: 0.24117276072502136
2) Луч номер 1 корпус нагрузки 1 ожидаемый: -1.166001558303833 допуск:0.001 процент допуска :2.0 но был: -1.1420921087265015
3) Балка номер 33 грузовой корпус 1 ожидается: < 60.961132049560547 d, 50.785896301269531 d, 40.610660552978516 d, 30.4354248046875 d, 20.260189056396484 d, 10.084957122802734 d, -0.090282440185546875 d, -10.265514373779297 d, -20.440753936767578 d, -30.615993499755859 D, -40.791217803955078 d, -50.966464996337891 D, -61.141693115234375 d > допуск:0.01 процент допуска : 3.0
поэтому мне нужно регулярное выражение, которое будет обрабатывать все вышеперечисленные 3 случая.
Пожалуйста помочь.
Что я уже пробовал:
в настоящее время я могу извлечь эти значения с помощью Substring().но нужен любой другой подход, такой как регулярное выражение.
Richard MacCutchan
Регулярное выражение поможет вам найти известные строки или общие шаблоны. Вы уверены, что это то, что вам нужно в данном случае?
pavan patil
да,если вы видите выше свойства,у них есть общий шаблон,это означает, что каждое свойство должно иметь номер узла, регистр загрузки, ожидаемые и но были поля, и я хочу их значения.
Richard MacCutchan
Вам нужно сначала найти строку с "номером узла", а затем извлечь два поля, начинающиеся с "ожидалось" и "Но было", за каждым из которых следует число.
Что-то вроде:
IF ISMATCH "Node number" THEN MATCH "Expected: \d" // this returns the substring following Expected MATCH "But was: \d" // dittoEND
Так что, вероятно, так же много работы, как и использование строковых методов.