English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

مثال على استخدام Matcher quoteReplacement (String s) في Java

appendReplacement()تقبل طرقMatcher كائن StringBuffer وString (سلسلة النصوص الاستبدالية) كمعلمات، ثم يتم إضافة البيانات الإدخالية إلى كائن StringBuffer، واستبدال النصوص المطابقة بسلسلة النصوص الاستبدالية.

في الداخل، تأخذ هذه الطريقة كل حرف من سلسلة النصوص الإدخالية وتضعه في منطق التخزين، وعند كل تطابق، يتم استبدال النص بدلاً من إضافة جزء التطابق من النص إلى منطق التخزين، ثم يستمر من الموقع التالي لجزء التطابق.

إذا استخدمت " /" أو " $" لتقديم سلسلة النصوص للطريقة، فإنها لن تُعتبر حروف عادية، وسيحدث استثناء-

مثال1

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteReplacement {
   public static void main(String[] args) {
      String str = " <p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>";
      //表达式 النصية لتحديد محتويات علامة粗
      String regex = "<b>(\\S+)</b>";
      System.out.println("Input string: \n" + str);
      //إنشاء نموذج نموذج
      Pattern pattern = Pattern.compile(regex);
      //تتبع النمط المسبق
      Matcher matcher = pattern.matcher(str);
      //إنشاء مساحة التخزين السلسة فارغة
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, "sampledata$");
         //Matcher.quoteReplacement("Bo$ld/Data$"));
      }
      matcher.appendTail(sb);
      النص التالي: Contents of the StringBuffer: \n
   }
}

نتائج الخروج

Input string:<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>Exception in thread "main" java.lang.IllegalArgumentException: Illegal group reference: group index is missing
   at java.util.regex.Matcher.appendReplacement(Unknown Source)
   at OCTOBER.matcher.QuoteReplacement.main(QuoteReplacement.java:18)

يستقبل طريقة quote Replacement من Matcher كائن نصي ويقوم بتقديم نص استبدال نصي. أي أن رموز / و $ في النص تُتجاهل، يمكن استخدام النتيجة كـappendReplacement()معاملات الطريقة.

مثال2

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteReplacement {
   public static void main(String[] args) {
      String str = "<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>";
      //表达式 النصية لتحديد محتويات علامة粗
      String regex = "<b>(\\S+)</b>";
      System.out.println("Input string: \n" + str);
      //إنشاء نموذج نموذج
      Pattern pattern = Pattern.compile(regex);
      //تتبع النمط المسبق
      Matcher matcher = pattern.matcher(str);
      //إنشاء مساحة التخزين السلسة فارغة
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, Matcher.quoteReplacement("Bo$ld/Data$"));
      }
      matcher.appendTail(sb);
      النص التالي: Contents of the StringBuffer: \n
   }
}

نتائج الخروج

الخط النصي الدخل:
<p>This <b>is</b> an <b>example</b> HTML <b>script</b>.</p>
محتويات مساحة التخزين السلسة:
<p>This Bo$ld/Data$ an Bo$ld/Data$ HTML Bo$ld/Data$.</p>

مثال 3

import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class QuoteReplacementExample {
   public static void main(String[] args) {
      String input = "This is sample text";
      String regex = "[#]";
      //إنشاء نموذج نموذج
      Pattern pattern = Pattern.compile(regex);
      //تتبع النمط المسبق
      Matcher matcher = pattern.matcher(input);
      //إنشاء مساحة التخزين السلسة فارغة
      String str = Matcher.quoteReplacement("sampledata");
      System.out.println(str);
   }
}

نتائج الخروج

sampledata
أفضل الأشياء التي قد تفضحها