{"id":14000,"date":"2021-08-20T19:43:51","date_gmt":"2021-08-20T19:43:51","guid":{"rendered":"https:\/\/freehost.page\/?p=14000"},"modified":"2021-08-20T19:43:51","modified_gmt":"2021-08-20T19:43:51","slug":"regex-chu-thich-cuoi-ten","status":"publish","type":"post","link":"https:\/\/kiencang.net\/regex-chu-thich-cuoi-ten\/","title":{"rendered":"C\u00e2u l\u1ec7nh Regex \u0111\u1ec3 nh\u1eadn bi\u1ebft c\u00e1c k\u00fd t\u1ef1 ch\u00fa th\u00edch cu\u1ed1i t\u00ean v\u00e0 d\u00f9ng PHP \u0111\u1ec3 x\u1eed l\u00fd"},"content":{"rendered":"\n
<\/p>\n\n\n\n
D\u1eef li\u1ec7u thu th\u1eadp c\u00f3 th\u1ec3 c\u00f3 nh\u1eefng t\u00ean nh\u01b0 th\u1ebf n\u00e0y: H\u00e0m PHP ph\u00e1t hi\u1ec7n c\u00e1c k\u00fd t\u1ef1 l\u1ea1 trong h\u1ecd t\u00ean ng\u01b0\u1eddi Vi\u1ec7t Nam (v1.2)<\/a><\/p>\n\n\n\n \u0110\u00e2y l\u00e0 c\u00e1c ch\u00fa th\u00edch ph\u1ed5 bi\u1ebfn khi m\u00e0 trong danh s\u00e1ch c\u00f3 nh\u1eefng ng\u01b0\u1eddi c\u00f9ng t\u00ean \u0111\u1ec3 ph\u00e2n bi\u1ec7t ng\u01b0\u1eddi n\u1ecd v\u1edbi ng\u01b0\u1eddi kia (v\u00ed d\u1ee5 trong l\u1edbp h\u1ecdc, trong nh\u00f3m ngo\u1ea1i kh\u00f3a, v\u00e2n v\u00e2n) ho\u1eb7c \u0111\u1ec3 b\u1ed5 sung th\u00f4ng tin \u0111\u1eb7c bi\u1ec7t cho t\u00ean.<\/p>\n\n\n\n Nhi\u1ec7m v\u1ee5 c\u1ee7a ch\u00fang ta l\u00e0 nh\u1eadn bi\u1ebft c\u00e1c k\u00fd t\u1ef1 d\u01b0 v\u00e0 lo\u1ea1i b\u1ecf n\u00f3 \u0111i. C\u00e2u l\u1ec7nh regex (bi\u1ec3u th\u1ee9c ch\u00ednh quy)<\/a> \u0111\u1ec3 l\u00e0m \u0111i\u1ec1u n\u00e0y l\u00e0:<\/p>\n\n\n\n B\u1ea1n c\u00f3 th\u1ec3 thay abcd b\u1eb1ng ABCD n\u1ebfu m\u1eabu c\u1ee7a b\u1ea1n l\u00e0 d\u1ea1ng vi\u1ebft hoa nh\u01b0 ki\u1ec3u Ti\u1ebfp \u0111\u1ebfn ch\u00fang ta s\u1ebd d\u00f9ng l\u1ec7nh Ti\u1ebfp theo ch\u00fang ta c\u1ea7n xu\u1ea5t n\u00f3 ra m\u00e0n h\u00ecnh \u0111\u1ec3 xem c\u00f3 tr\u01b0\u1eddng h\u1ee3p ngo\u1ea1i l\u1ec7 n\u00e0o kh\u00f4ng tr\u01b0\u1edbc khi th\u1ef1c hi\u1ec7n can thi\u1ec7p d\u1eef li\u1ec7u th\u1ef1c s\u1ef1. V\u00ed d\u1ee5, tr\u01b0\u1eddng h\u1ee3p tr\u00ean s\u1ebd kh\u00f4ng ch\u00ednh x\u00e1c v\u1edbi t\u00ean ng\u01b0\u1eddi ch\u1ec9 c\u00f3 m\u1ed9t k\u00fd t\u1ef1. V\u00ed d\u1ee5 Nguy\u1ec5n \u0110\u1ee9c A, tuy nhi\u00ean tr\u01b0\u1eddng h\u1ee3p n\u00e0y th\u00ec c\u1ef1c k\u1ef3 hi\u1ebfm, n\u00ean m\u00e3 regex tr\u00ean c\u00f3 th\u1ec3 n\u00f3i l\u00e0 gi\u1ea3i quy\u1ebft \u0111\u01b0\u1ee3c v\u1ea5n \u0111\u1ec1 li\u00ean quan \u0111\u1ebfn c\u00e1c ch\u00fa th\u00edch cu\u1ed1i t\u00ean.<\/p>\n\n\n\n PS: m\u1ed9t m\u1eb9o \u0111\u1ec3 s\u1eed d\u1ee5ng regex t\u1ed1t l\u00e0 test tr\u01b0\u1edbc n\u00f3, \u1ed5n r\u1ed3i b\u1ea1n m\u1edbi copy l\u1ec7nh v\u00e0o PHP (trong PHP th\u00ec b\u1ea1n \u0111\u01b0a n\u00f3 v\u00e0o gi\u1eefa hai d\u1ea5u Nguy\u1ec5n \u0110\u1ee9c Anh\/b\nNguy\u1ec5n \u0110\u1ee9c Anh (mb)\nNguy\u1ec5n \u0110\u1ee9c Anh (hn)\nNguy\u1ec5n \u0110\u1ee9c Anh (hsdb)\nNguy\u1ec5n \u0110\u1ee9c Anh - b\nNguy\u1ec5n \u0110\u1ee9c Anh.b\nNguy\u1ec5n \u0110\u1ee9c Anh -b\nNguy\u1ec5n \u0110\u1ee9c Anh-b\nNguy\u1ec5n \u0110\u1ee9c a\nNguy\u1ec5n \u0110\u1ee9c Anh b\nNguy\u1ec5n \u0110\u1ee9c Anh (a)\nNguy\u1ec5n \u0110\u1ee9c Anh (b)\nNguy\u1ec5n \u0110\u1ee9c Anh (a\nNguy\u1ec5n \u0110\u1ee9c Anh (b\nNguy\u1ec5n \u0110\u1ee9c Anh (b\nNguy\u1ec5n \u0110\u1ee9c Anha)\nNguy\u1ec5n \u0110\u1ee9c Anh(b)\nNguy\u1ec5n \u0110\u1ee9c Anh (a )\nNguy\u1ec5n \u0110\u1ee9c Anh ( c)\nNguy\u1ec5n \u0110\u1ee9c Anh1\nNguy\u1ec5n \u0110\u1ee9c Anh2\nNguy\u1ec5n \u0110\u1ee9c Anh 1\nNguy\u1ec5n \u0110\u1ee9c Anh 2\nNguy\u1ec5n \u0110\u1ee9c Anh (1)\nNguy\u1ec5n \u0110\u1ee9c Anh (21)<\/code><\/pre>\n\n\n\n
$pt='\/(\\(\\s*)[abcd|\\d](\\s*\\)*)$|\\d$|\\s+[abcd]$|[abcd]\\)|\\([a-z]+\\)$|[\\-,.\\\/]\\s*[abcd]$|\\(\\d{1,}\\)$\/';<\/code><\/pre>\n\n\n\n
Nguy\u1ec5n \u0110\u1ee9c Anh (A)<\/code><\/p>\n\n\n\n
preg_match<\/a><\/code> \u0111\u1ec3 so kh\u1edbp v\u1edbi m\u1eabu t\u00ecm ki\u1ebfm, v\u00e0 l\u1ec7nh
preg_replace<\/a><\/code> \u0111\u1ec3 x\u00f3a c\u00e1c k\u00fd t\u1ef1 kh\u00f4ng c\u1ea7n thi\u1ebft n\u00e0y:<\/p>\n\n\n\n
if (preg_match($pt, $tencu)) {\n $tenmoi = preg_replace($pt, '', $tencu);\n echo \"H\u1ecd t\u00ean c\u0169: <strong>\".$tencu.\"<\/strong> \".\"H\u1ecd t\u00ean m\u1edbi: <strong>\".$tenmoi.\"<\/strong>\";\n echo \"<\/br>\";\n}<\/code><\/pre>\n\n\n\n
'\/regex \u0111\u1eb7t \u1edf \u0111\u00e2y\/'<\/code>). C\u00e1ch d\u1ec5 nh\u1ea5t l\u00e0 b\u1ea1n d\u00f9ng trang Regex101. B\u1ea1n c\u00f3 th\u1ec3 xem m\u00e3 l\u1ec7nh t\u00f4i v\u1eeba d\u00f9ng l\u01b0u tr\u00ean trang \u0111\u00f3<\/a>.<\/p>\n\n\n\n