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

كيفية إزالة الأحرف غير ASCII من السلسلة النصية

فئة POSIX\ p {ASCII} تتطابق مع الأحرف ASCII، ويستخدم العلامة الموجزة ^ كنقطة سلبية.

تتطابق هذه التعبيرات مع جميع الأحرف غير ASCII.

"[^\\p{ASCII}]"

replaceAll()يمكن استخدام طرق String لقبول تعبير النمط والنص التبديلي، ويتم استبدال الأحرف الحالية في النص الحالي بالنص التبديلي المحدد (المطابق للنمط المحدد).

لذلك، يمكنك استخدامreplaceAll()يتم حذف الأحرف التي تتطابق مع النمط باستخدام 字符串空字符串“”.

مثال1

import java.util.Scanner;
public class Exp {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      String regex = "[^\\p{ASCII}]";
      System.out.println("ادخل البيانات المدخلة:");
      String input = sc.nextLine();
      String result = input.replaceAll(regex, "");
      System.out.println("نتيجة: " + result);
   }
}

نتيجة الخروج

ادخل البيانات المدخلة:
لماذا نقع في الفشل
نتيجة: لماذا نقع في الفشل

مثال 2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Example {
   public static void main(String args[]) {
      Scanner sc = new Scanner(System.in);
      System.out.println("ادخل سلسلة المدخل: ");
      String input = sc.nextLine();
      String regex = "[^\\p{ASCII}]";
      // أنشئ كائن نمط
      Pattern pattern = Pattern.compile(regex);
      // تطابق النمط المسبق
      Matcher matcher = pattern.matcher(input);
      // أنشئ منطقة تجميع نصية فارغة
      StringBuffer sb = new StringBuffer();
      while (matcher.find()) {
         matcher.appendReplacement(sb, "");
      }
      matcher.appendTail(sb);
      System.out.println("نتيجة: \n"+ sb.toString());
   }
}

نتيجة الخروج

ادخل سلسلة المدخل:
لماذا نقع في الفشل
نتيجة:
لماذا نقع في الفشل
أنت قد تستمتع بذلك