PHP регулярное выражение для выбора строки на основе начальной строки до пробела, но исключить строку выбора

Предположим, у нас есть строка вроде:

text text MinorAlleleCount:G=0.4627/56166 text text text

Я использую это регулярное выражение:

/(MinorAlleleCount)[^\s]+/

Который возвращает:

MinorAlleleCount:G=0.4627/56166

Но я бы хотел исключить шаблон (MinorAlleleCount) для возврата:

G=0.4627/56166

Можно ли это сделать, не прибегая к зиЬзЬг ()?

0

Решение

выражение

Вы можете использовать это регулярное выражение, чтобы иметь ваш матч:

MinorAlleleCount:\K\S+

Он выполняет ту же работу, что и с положительным взглядом, но гораздо меньшими шагами.

Посмотреть демо

Если вы хотите убедиться, что MinorAlleleCount: не начинается в середине слова, как в SomethingMinorAlleleCount, вы можете добавить слово границы (\b) в начале, как это:

\bMinorAlleleCount:\K\S+

пример

$re = '/MinorAlleleCount:\K\S+/';
$str = 'text text SomeMinorAlleleCount:G=0.4627/56166 text text text';

preg_match_all($re, $str, $matches);

$matches будет содержать G=0.4627/56166

1

Другие решения

Пытаться этот:

(?<=MinorAlleleCount:)\S+

(?<=) положительный взгляд за
\S+ один или несколько не пропусков

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector