PHP regex tìm lastIndex của một ký tự như trong javascript

0 k thích

Mình có một string $text1 = 'A373R12345' và muốn tìm ra ký tự cuối cùng không phải là số. Mình đang dùng đoạn php regex sau ^(.*)[^0-9]([^-]*) và tách ra được hai phần A37312345. Nhưng kết quả mình muốn là A373R12345, phần đầu có thêm R
Ai có gợi ý gì không ?

avatar đã hỏi ngày 17 tháng 5 bởi lucius (1,180 điểm)  

1 Câu trả lời

0 k thích

Bạn có thể thử đoạn code sau :

$text1 = 'A373R12345';
preg_match('/^(.*[^\d])(\d+)$/', $text1, $match);
echo $match[1]; // A373R
echo $match[2]; // 12345

để cho dễ hiểu có thể tách đoạn regex ra như sau :

  • ^ là đánh dấu điểm bắt đầu của đoạn string
  • *(.[^\d])** sẽ bắt tất cả đoạn text nào mà ký tự cuối không phải là số
  • (\d+)$ sẽ bắt tất cả các đoạn text chứa toàn ký tự số cho đến cuối
avatar trả lời ngày 17 tháng 5 bởi newbie (1,040 điểm)  
...