কম্পিউটার টিউটোরিয়াল

MySQL-এ REGEXP দিয়ে অপশনাল এন্ড-অফ-লাইন ম্যাচ (প্যাটার্ন মিলান)

MySQL-এ REGEXP ব্যবহার করে স্ট্রিং-এর মধ্যে অপশনাল প্যাটার্ন (যেমন: সংখ্যা বা লাইন এন্ড) ম্যাচ করা যায়।

উদাহরণ

mysql> CREATE TABLE DemoTable (EmployeeCode VARCHAR(100));
Query OK, 0 rows affected (0.56 sec)

mysql> INSERT INTO DemoTable VALUES
('EMPLOYEE:100 John Smith'),
('EMPLOYEE:16537 Chris Brown'),
('EMPLOYEE:100 David Miller'),
('EMPLOYEE:100 23432 David Miller');
Query OK, 4 rows affected

সব রেকর্ড

mysql> SELECT * FROM DemoTable;
+---------------------------------+
| EmployeeCode                    |
+---------------------------------+
| EMPLOYEE:100 John Smith         |
| EMPLOYEE:16537 Chris Brown      |
| EMPLOYEE:100 David Miller       |
| EMPLOYEE:100 23432 David Miller |
+---------------------------------+

EMPLOYEE:100 এর পর সরাসরি নন-ডিজিট বা লাইন এন্ড

mysql> SELECT * FROM DemoTable
WHERE EmployeeCode REGEXP 'EMPLOYEE:100([^0-9]|$)';
+---------------------------------+
| EmployeeCode                    |
+---------------------------------+
| EMPLOYEE:100 John Smith         |
| EMPLOYEE:100 David Miller       |
| EMPLOYEE:100 23432 David Miller |
+---------------------------------+

রেগেক্স ব্যাখ্যা

  • EMPLOYEE:100 → লিটেরেল মিলান
  • ([^0-9]|$) → দুটি অপশন:
    • [^0-9] → ডিজিট ছাড়া যেকোনো ক্যারেক্টার (স্পেস, লেটার ইত্যাদি)
    • $ → স্ট্রিংয়ের শেষ (এন্ড-অফ-লাইন)
  • তাই "EMPLOYEE:100 subito" মэтচ করবে, "EMPLOYEE:10023432" মэтচ করবে না (যদি অপশনাল গ্রুপে $ না থাকে)
  • উপরের কোয়েরিতে $ থাকায় "EMPLOYEE:100 23432..." ও মэтচ করেছে (স্পেস মэтচ করেছে [^0-9]-এ)

শুধু EMPLOYEE:100 এবং তারপর স্পেস/লাইন-এন্ড (কোনো ডিজিট নয়)

WHERE EmployeeCode REGEXP '^EMPLOYEE:100([^0-9]|$)';
  1. Java ব্যবহার করে MySQL টেবিলে রেকর্ড সন্নিবেশ করা

  2. MySQL에서 가장 최근 시간 레코드 조회하기

  3. C#-এ StringBuilder-এ AppendLine ব্যবহার

  4. জাভা রেগেক্স দিয়ে স্ট্রিং/লাইন এর শেষ ম্যাচ করা ($)