دروس جافا

جافا هوم جافا مقدمة ابدأ جافا بناء جملة جافا تعليقات جافا متغيرات جافا أنواع بيانات جافا جافا نوع الصب مشغلي جافا سلاسل جافا جافا الرياضيات جافا المنطقية جافا إذا ... آخر تبديل جافا جافا أثناء التكرار جافا للحلقة جافا بريك / متابعة جافا المصفوفات

طرق جافا

طرق جافا معلمات طريقة جافا طريقة جافا التحميل الزائد نطاق جافا العودية جافا

فئات جافا

جافا OOP فئات / كائنات جافا سمات فئة Java طرق فئة جافا منشئو جافا معدِّلات جافا تغليف جافا حزم جافا / API الوراثة جافا جافا تعدد الأشكال فئات جافا الداخلية جافا التجريد واجهة جافا جافا Enums مدخلات مستخدم جافا تاريخ جافا جافا ArrayList جافا لينكدليست جافا HashMap جافا هاشسيت جافا التكرار فئات Java Wrapper استثناءات Java جافا RegEx خيوط جافا جافا لامدا

معالجة ملفات جافا

ملفات جافا جافا إنشاء / كتابة الملفات ملفات قراءة جافا جافا حذف الملفات

جافا كيف

أضف عددين

مرجع جافا

كلمات جافا طرق سلسلة جافا طرق جافا للرياضيات

أمثلة جافا

أمثلة جافا مترجم جافا تمارين جافا مسابقة جافا شهادة جافا


تعبيرات جافا العادية


ما هو التعبير العادي؟

التعبير العادي هو سلسلة من الأحرف التي تشكل نمط بحث. عندما تبحث عن بيانات في نص ، يمكنك استخدام نمط البحث هذا لوصف ما تبحث عنه.

يمكن أن يكون التعبير العادي حرفًا واحدًا أو نمطًا أكثر تعقيدًا.

يمكن استخدام التعبيرات العادية لإجراء جميع أنواع عمليات البحث عن النص واستبدال النص .

لا تحتوي Java على فئة Regular Expression مضمنة ، ولكن يمكننا استيراد java.util.regex الحزمة للعمل مع التعبيرات العادية. تشمل الباقة الفئات التالية:

  • Patternفئة - تحدد نمطًا (لاستخدامه في البحث)
  • Matcherفئة - تُستخدم للبحث عن النمط
  • PatternSyntaxExceptionفئة - تشير إلى خطأ في بناء الجملة في نمط تعبير عادي

مثال

اكتشف ما إذا كان هناك أي تكرارات لكلمة "w3schools" في جملة:

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Main {
  public static void main(String[] args) {
    Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
    Matcher matcher = pattern.matcher("Visit W3Schools!");
    boolean matchFound = matcher.find();
    if(matchFound) {
      System.out.println("Match found");
    } else {
      System.out.println("Match not found");
    }
  }
}
// Outputs Match found

شرح المثال

في هذا المثال ، يتم البحث عن كلمة "w3schools" في جملة.

أولاً ، يتم إنشاء النمط باستخدام Pattern.compile()الطريقة. تشير المعلمة الأولى إلى النمط الذي يتم البحث عنه ، بينما تحتوي المعلمة الثانية على علامة تشير إلى أن البحث يجب أن يكون غير حساس لحالة الأحرف. المعلمة الثانية اختيارية.

تستخدم matcher()الطريقة للبحث عن النمط في سلسلة. تقوم بإرجاع كائن Matcher الذي يحتوي على معلومات حول البحث الذي تم إجراؤه.

ترجع find()الطريقة true إذا تم العثور على النمط في السلسلة و false إذا لم يتم العثور عليها.



أعلام

تعمل الإشارات في compile()الطريقة على تغيير كيفية إجراء البحث. فيما يلي عدد قليل منهم:

  • Pattern.CASE_INSENSITIVE- سيتم تجاهل حالة الأحرف عند إجراء البحث.
  • Pattern.LITERAL- لن يكون للأحرف الخاصة في النمط أي معنى خاص وسيتم التعامل معها على أنها أحرف عادية عند إجراء بحث.
  • Pattern.UNICODE_CASE- استخدمها مع CASE_INSENSITIVEالعلم لتجاهل حالة الأحرف خارج الأبجدية الإنجليزية

أنماط التعبير العادي

المعلمة الأولى Pattern.compile()للطريقة هي النمط. يصف ما يتم البحث عنه.

تستخدم الأقواس للبحث عن مجموعة من الأحرف:

Expression Description
[abc] Find one character from the options between the brackets
[^abc] Find one character NOT between the brackets
[0-9] Find one character from the range 0 to 9

الحروف الأولية

الحروف الأولية هي أحرف لها معنى خاص:

Metacharacter Description
| Find a match for any one of the patterns separated by | as in: cat|dog|fish
. Find just one instance of any character
^ Finds a match as the beginning of a string as in: ^Hello
$ Finds a match at the end of the string as in: World$
\d Find a digit
\s Find a whitespace character
\b Find a match at the beginning of a word like this: \bWORD, or at the end of a word like this: WORD\b
\uxxxx Find the Unicode character specified by the hexadecimal number xxxx

محددو الكمية

محددات الكميات تحدد الكميات:

Quantifier Description
n+ Matches any string that contains at least one n
n* Matches any string that contains zero or more occurrences of n
n? Matches any string that contains zero or one occurrences of n
n{x} Matches any string that contains a sequence of X n's
n{x,y} Matches any string that contains a sequence of X to Y n's
n{x,} Matches any string that contains a sequence of at least X n's

ملاحظة: إذا احتاج تعبيرك إلى البحث عن أحد الأحرف الخاصة ، يمكنك استخدام شرطة مائلة للخلف (\) للتخلص منها. في Java ، يجب تخطي الخطوط المائلة العكسية في السلاسل ، لذا يلزم وجود شرطتين مائلتين عكسيتين للهروب من الأحرف الخاصة. على سبيل المثال ، للبحث عن علامة استفهام واحدة أو أكثر ، يمكنك استخدام التعبير التالي: "\\؟"