$re = '/T\d[NMXab\d]*(?!D)/';
$str = 'Jotkin tekstinlouhintaongelmista on yksiselitteisiä ratkaista. Otetaan esimerkkinä syövän kokoa ja levinneisyyttä kuvaava TNM-luokitus. TNM-data on useimmissa syöpätutkimusprojekteissa relevattia ja haluttua kliinistä tietoa, sillä se kertoo tutkijalle syövän vakavuudesta. Esimerkiksi ”T4N1M0”-luokitellusta kasvainnäytteestä tutkija voisi päätellä, että näytteenantajan alkuperäinen syöpäkasvain on suuri ja levinnyt lähi-imusolmukkeisiin, muttei ole vielä lähettänyt etäpesäkkeitä muualle näytteenantajan elimistöön (muita usein esiintyviä TNM-tapauksia ovat mm. ”T2NX”, ”T4aM1”, ”T1bN0MX” muttei esimerkiksi ”T2DM”, joka on lyhenne tyypin 2 diabeteksesta). Mainittakoon, että yli puolet Aurian biopankkitutkimuksista liittyy syöpään, joten kysymys TNM-luokan selvittämisestä on todellakin usein toistuva. Aina tieto kasvaimen TNM-luokasta ei kuitenkaan ole rakenteellisesti saatavilla, joten tietoa on louhittava esimerkiksi patologin lausunnoista: yllä mainitut validit TNM-luokat olisivat saatu melko yksinkertaisella regex-haulla ” T\\d[NMXab\\d]*(?!D)” kiinni ( DEMO ).';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php