Я ищу способ проверить, имеет ли определенная строка следующую форму:
[random text A-Za-z0-9 etc.] [integer] [integer]
Так что в основном я хочу проверить, заканчивается ли строка двумя целыми числами и есть ли текст раньше. Я также хотел бы сопоставить эти два целых числа и случайную часть текста, так как мне нужно обрабатывать / хранить их отдельно.
Я бы предпочел предложения, основанные на регулярных выражениях.
На основании ответа анубхавы я сформировал регулярное выражение, которое работает:
'/^(.+)\s(\d+)\s(\d+)$/'
Тестовое задание:
test line: Informatica 22 100
array(4) {
[0]=>
string(18) "Informatica 22 100"[1]=>
string(11) "Informatica"[2]=>
string(2) "22"[3]=>
string(3) "100"}
Вы можете использовать это регулярное выражение:
^(.*)(\d)(\d)$
Код PHP:
if (preg_match('/^(.*)(\d)(\d)$/', $str, $m)) {
print_r($m);
}