На этот вопрос сложно ответить, не зная немного об обстоятельствах. Но если можно предположить, что структура данных такова, что это заданное количество точек данных, разделенных звездочками, и всегда одинаковое количество элементов, то для извлечения значения все, что вам нужно сделать, это разбить строку на звездочке и укажите соответствующее местоположение в массиве:
$data = "ISA*00* 00 ZZDIANER *ZZ*88888 *200401*1305*^*00501*000044761*1*P*:~GSHCDIANER*88888*20200401*130536*44761*X*005010X222A1~ST*837*59892*005010X222A1~SE*50*59892~GE*101*44761~IEA*1*000044761~"
$data.Split("*")[24]
Вышеприведенное вернет: 101
Вышеприведенное работает, если вы знаете, что значение всегда будет находиться в одном и том же расположение в строке.
Если он может двигаться, то вы можете попробовать найти его с помощью сопоставления с шаблоном - ie, найти шаблон из *, трех чисел и другого * (но данные могут содержать другой сегмент, соответствующий этому шаблон), или если этому значению всегда предшествует другое идентифицируемое значение, вы можете найти его, а затем извлечь следующий сегмент, который будет значением, которое вы ищете.
Это действительно зависит от особенностей набор данных.