JavaRush /جاوا بلاگ /Random-SD /جاوا ۾ باقاعده اظهار، حصو 3

جاوا ۾ باقاعده اظهار، حصو 3

گروپ ۾ شايع ٿيل
اسان توهان جي ڌيان لاءِ پيش ڪريون ٿا هڪ مختصر گائيڊ جو ترجمو جاوا ۾ باقاعده اظهار لاءِ، جيف فريسن طرفان لکيل آهي javaworld ويب سائيٽ لاءِ . پڙهڻ جي آسانيءَ لاءِ، اسان مضمون کي ڪيترن ئي حصن ۾ ورهايو آهي. جاوا ۾ باقاعده اظهار، حصو 3 - 1جاوا ۾ باقاعده اظهار، حصو 1 جاوا ۾ باقاعده اظهار، حصو 2

Regex API سان عام پروگرامنگ ڪمن کي آسان ڪريو

ھن آرٽيڪل جي حصن 1 ۽ 2 ۾، توھان کي متعارف ڪرايو ويو آھي باقاعده اظهار ۽ ريجڪس API. توهان ڪلاس جي باري ۾ سکيو Pattern۽ انهن مثالن جي ذريعي هليو جيڪي باقاعده اظهار جي جوڙجڪ کي ظاهر ڪن ٿا، سادي نموني جي ميلاپ کان وٺي لفظي اسٽرنگ استعمال ڪندي وڌيڪ پيچيده ميلاپ تائين رينجز، بائونڊري ميچرز، ۽ مقدار کي استعمال ڪندي. هن ۽ ايندڙ حصن ۾ اسان انهن مسئلن تي غور ڪنداسين جيڪي پهرين حصي ۾ شامل نه آهن، اسان ڪلاسن جي لاڳاپيل طريقن جو مطالعو ڪنداسين Pattern، Matcher۽ PatternSyntaxException. توهان پڻ ٻه افاديتون سکندا جيڪي عام پروگرامنگ مسئلن کي آسان بڻائڻ لاءِ باقاعده اظهار استعمال ڪندا آهن . پهريون هڪ دستاويزن لاءِ ڪوڊ مان رايا ڪڍي ٿو. ٻيو وري قابل استعمال ڪوڊ جي لائبريري آهي جيڪا ليڪسيڪل تجزيي کي انجام ڏيڻ لاءِ تيار ڪئي وئي آهي - گڏ ڪرڻ وارن، مرتب ڪندڙن، ۽ ساڳئي سافٽ ويئر جو هڪ لازمي حصو.

ڊائون لوڊ ڪرڻ جو ذريعو ڪوڊ

توھان حاصل ڪري سگھوٿا سڀ سورس ڪوڊ (جيف فريسن پاران جاوا ورلڊ لاءِ ٺاھيو ويو) ھن آرٽيڪل ۾ ڊيمو ايپليڪيشنن لاءِ ھتي .

Regex API سکيا

Pattern، Matcher۽ PatternSyntaxExceptionٽي طبقا آهن جيڪي ٺاهيندا آهن Regex API. انهن مان هر هڪ طريقا مهيا ڪري ٿو جيڪي توهان کي توهان جي ڪوڊ ۾ باقاعده اظهار استعمال ڪرڻ جي اجازت ڏين ٿا.

نموني جي درجي جا طريقا

ڪلاس جو هڪ مثال Patternهڪ مرتب ڪيل باقاعده اظهار آهي، جنهن کي پڻ نموني طور سڃاتو وڃي ٿو. باقاعده اظهار مرتب ڪيا ويا آهن نمونن جي ميلاپ جي عملن جي ڪارڪردگي کي بهتر ڪرڻ لاء. هيٺيان جامد طريقا تاليف جي حمايت ڪن ٿا.
  • Pattern compile(String regex)مواد کي گڏ ڪري ٿو regexهڪ وچولي نمائندگي ۾ جيڪو ذخيرو ٿيل آهي نئين Pattern. PatternSyntaxExceptionاهو طريقو يا ته ڪامياب ٿيڻ جي صورت ۾ هڪ اعتراض جو حوالو ڏئي ٿو، يا جيڪڏهن غلط ريگيولر ايڪسپريشن نحو معلوم ٿئي ٿو ته استثنا ڏئي ٿو . ڪلاس جو ڪو به اعتراض Matcherاستعمال ڪيو ويو آهي Patternيا هن اعتراض مان موٽايو ويو آهي ان جي ڊفالٽ سيٽنگون، جهڙوڪ ڪيس-حساس ڳولا. مثال طور، ڪوڊ اسنپٽ Pattern p = Pattern.compile("(?m)^\\."); هڪ اعتراض ٺاهي ٿو Patternجيڪو ڊٽ ڪردار سان شروع ٿيندڙ تارن سان ملائڻ لاءِ باقاعده اظهار جي مرتب ڪيل نمائندگي کي محفوظ ڪري ٿو.

  • Pattern compile(String regex, int flags)ساڳئي مسئلي کي حل ڪري ٿو Pattern compile(String regex)، پر حساب ۾ رکندي flags: OR قسم جي بٽ جھنڊن لاءِ بٽ مستقل جو هڪ سيٽ. ڪلاس Patternمسلسل بيان ڪري ٿو CANON_EQ, CASE_INSENSITIVE, COMMENTS, DOTALL, LITERAL, MULTILINE, UNICODE_CASE, UNICODE_CHARACTER_CLASS и UNIX_LINESجيڪي bitwise OR (مثال طور، CASE_INSENSITIVE | DOTALL) استعمال ڪندي گڏ ڪري سگھجن ٿا ۽ دليل طور منظور ڪيو ويو آھي flags.

  • جي استثناءَ سان CANON_EQ, LITERAL и UNICODE_CHARACTER_CLASS، اهي ثابتيون حصو 1 ۾ ڏيکاريل نيسٽڊ پرچم ايڪسپريسشن جو متبادل آهن. جيڪڏهن ڪلاس ۾ بيان ڪيل انهن کان سواءِ هڪ پرچم مستقل سامهون اچي ٿو Pattern، طريقو Pattern compile(String regex, int flags) هڪ استثنا ڏئي ٿو java.lang.IllegalArgumentException. مثال طور، Pattern p = Pattern.compile("^\\.", Pattern.MULTILINE);پوئين مثال جي برابر، مسلسل Pattern.MULTILINE۽ nested پرچم جي اظهار سان (?m)ساڳيو ڪم ڪندي.
ڪڏهن ڪڏهن اهو ضروري هوندو آهي ته اصل اسٽرنگ جي ڪاپي حاصل ڪرڻ لاءِ ڪنهن شئي ۾ مرتب ڪيل ريگيولر ايڪسپريس Pattern، ان سان گڏ ان جي استعمال ڪيل جھنڊن سان. هن کي ڪرڻ لاء، توهان هيٺين طريقن کي سڏي سگهو ٿا:
  • String pattern()اصل ريگيولر ايڪسپريس اسٽرنگ کي واپس ڪري ٿو جيڪو هڪ ۾ مرتب ڪيو ويو آهي Pattern.

  • int flags()اعتراض جي پرچم کي واپس ڏئي ٿو Pattern.
اعتراض حاصل ڪرڻ کان پوء Pattern، اهو عام طور تي استعمال ڪيو ويندو آهي اعتراض حاصل ڪرڻ لاء Matcherنمونن جي ميلاپ جي عملن کي انجام ڏيڻ لاء. اهو طريقو Matcher matcher(Charsequence input)هڪ اعتراض ٺاهي ٿو Matcherجيڪو متن کي ڳولهي ٿو inputهڪ ميچ لاء هڪ اعتراض جي نموني سان Pattern. جڏهن سڏيو وڃي ٿو، اهو هن اعتراض ڏانهن هڪ حوالو ڏئي ٿو Matcher. مثال طور، حڪم Matcher m = p.matcher(args[1]);موٽائي ٿو Matcherاعتراض لاءِ حوالو Patternمتغير طرفان p.
ھڪڙي وقت جي ڳولا
static boolean matches(String regex, CharSequence input)ڪلاس جو طريقو Patternتوهان کي شيون ٺاهڻ تي محفوظ ڪرڻ جي اجازت ڏئي ٿو Pattern۽ Matcherٽيمپليٽ استعمال ڪندي هڪ وقت جي ڳولا. اهو طريقو صحيح موٽائي ٿو جيڪڏهن inputنموني سان ملائي regex، ٻي صورت ۾ اهو غلط موٽائي ٿو. جيڪڏهن باقاعده اظهار ۾ نحو جي غلطي شامل آهي، طريقو هڪ استثنا اڇلائي ٿو PatternSyntaxException. مثال طور، System.out.println(Pattern.matches("[a-z[\\s]]*", "all lowercase letters and whitespace only"));پرنٽ true، تصديق ڪري ٿو ته جملي all lowercase letters and whitespace only۾ صرف اسپيس ۽ ننڍا اکر شامل آهن.
جاوا ۾ باقاعده اظهار، حصو 3 - 2

ورهائڻ وارو متن

اڪثر ڊولپرز وٽ گهٽ ۾ گهٽ هڪ ڀيرو لکيل ڪوڊ هوندو آهي ان پٽ ٽيڪسٽ کي ان جي جزو حصن ۾ ٽوڙڻ لاءِ، جيئن ٽيڪسٽ تي ٻڌل ملازم اڪائونٽ کي فيلڊ جي سيٽ ۾ تبديل ڪرڻ. ڪلاس Patternوڌيڪ آسانيءَ سان حل ڪرڻ جي صلاحيت ڏئي ٿو هن مشڪل ڪم کي ٻن ٽيڪسٽ ورهائڻ جا طريقا استعمال ڪندي:
  • اهو طريقو String[] split(CharSequence text, int limit)ورهائي ٿو textمليل ميچز جي مطابق اعتراض جي نموني سان Pattern۽ نتيجن کي هڪ صف ۾ واپس ڪري ٿو. ھر صف جو عنصر ھڪڙي متن جي ترتيب کي بيان ڪري ٿو جيڪو ايندڙ ترتيب کان ھڪڙي نموني سان ملندڙ متن جي ٽڪڙي (يا متن جي آخر) کان جدا ٿي ويو آھي. صف جا عناصر ساڳي ترتيب ۾ آهن جنهن ۾ اهي ظاهر ٿيندا آهن text.

    هن طريقي ۾، صفن جي عناصر جو تعداد پيراميٽر تي منحصر هوندو آهي limit، جيڪو پڻ ملن جي تعداد کي سنڀاليندو آهي.

    • هڪ مثبت قدر ڳولهي ٿو نه وڌيڪ ميچن کان وڌيڪ limit-1۽ صف جي ڊيگهه limitعناصر کان وڌيڪ ناهي.
    • جيڪڏهن قدر منفي آهي، سڀ ممڪن ميچون ڳوليا ويندا آهن، ۽ صف جي ڊيگهه صوابديدي ٿي سگهي ٿي.
    • جيڪڏهن قيمت صفر آهي، سڀ ممڪن ميچون ڳولها ويندا آهن، صف جي ڊيگهه صوابديدي ٿي سگهي ٿي، ۽ آخر ۾ خالي لائينون رد ڪيون وينديون آهن.

  • طريقو String[] split(CharSequence text)اڳئين طريقي کي سڏي ٿو 0 سان حد دليل جي طور تي ۽ ان جي ڪال جو نتيجو واپس ڪري ٿو.
هيٺ ڏنل طريقي جا نتيجا آهن split(CharSequence text)هڪ ملازم اڪائونٽ کي ورهائڻ جو مسئلو حل ڪرڻ جو نالو، عمر، پوسٽل ايڊريس ۽ تنخواه جي جدا جدا شعبن ۾:
Pattern p = Pattern.compile(",\\s");
String[] fields = p.split("John Doe, 47, Hillsboro Road, 32000");
for (int i = 0; i < fields.length; i++)
   System.out.println(fields[i]);
مٿي ڏنل ڪوڊ هڪ باقاعده اظهار کي بيان ڪري ٿو هڪ ڪاما ڪردار ڳولڻ لاء فوري طور تي هڪ واحد اسپيس ڪردار جي پٺيان. هتي ان جي عملدرآمد جا نتيجا آهن:
John Doe
47
Hillsboro Road
32000

ٽيمپليٽ اڳڪٿيون ۽ اسٽريم API

جاوا 8 ۾، Patternهڪ طريقو ڪلاس ۾ ظاهر ٿيو . اهو طريقو هڪ پيشڪش ٺاهي ٿو (هڪ فنڪشن هڪ بوليان قدر سان) جيڪو نموني سان ملائڻ لاء استعمال ڪيو ويندو آهي. هن طريقي جو استعمال هيٺ ڏنل ڪوڊ جي ٽڪڙي ۾ ڏيکاريل آهي: Predicate asPredicate()
List progLangs = Arrays.asList("apl", "basic", "c", "c++", "c#", "cobol", "java", "javascript", "perl", "python", "scala");
Pattern p = Pattern.compile("^c");
progLangs.stream().filter(p.asPredicate()).forEach(System.out::println);
هي ڪوڊ پروگرامنگ ٻولي جي نالن جي هڪ فهرست ٺاهي ٿو، پوء سڀني نالن کي ڳولڻ لاء هڪ نمونو گڏ ڪري ٿو جيڪو خط سان شروع ٿئي ٿو c. مٿي ڏنل ڪوڊ جي آخري لائن هن فهرست سان گڏ ڊيٽا جي هڪ سيريل وهڪرو حاصل ڪرڻ کي لاڳو ڪري ٿي. اهو هڪ بولين فنڪشن استعمال ڪندي هڪ فلٽر سيٽ ڪري ٿو asPredicate()جيڪو صحيح موٽائي ٿو جڏهن نالو هڪ خط سان شروع ٿئي ٿو c۽ اسٽريم ذريعي ٻيهر ورجائي ٿو، ملندڙ نالن کي معياري آئوٽ تي ڇپائي ٿو. ھي آخري لائين ھيٺ ڏنل باقاعده لوپ جي برابر آھي، حصو 1 کان RegexDemo ايپليڪيشن کان واقف آھي.
for (String progLang: progLangs)
   if (p.matcher(progLang).find())
      System.out.println(progLang);

ملندڙ ڪلاس جا طريقا

ڪلاس جو هڪ مثال ڪلاس Matcherجي مرتب ڪيل باقاعده اظهار جي تشريح ڪندي اکرن جي تسلسل تي نمونن جي ميلاپ جي عمل کي انجام ڏيڻ لاءِ هڪ ميکانيزم کي بيان ڪري ٿو Pattern. ڪلاس جون شيون Matcherمختلف قسم جي نمونن جي ڳولا جي عملن جي مدد ڪن ٿيون:
  • طريقو boolean find()ايندڙ ميچ لاءِ ان پٽ ٽيڪسٽ ڳولهي ٿو. اهو طريقو اسڪيننگ شروع ٿئي ٿو يا ته مخصوص متن جي شروعات ۾ يا پوئين ميچ کان پوءِ پهرين ڪردار تي. ٻيو اختيار صرف ممڪن آهي جيڪڏهن هن طريقي جي پوئين ڪال واپس آئي ۽ حل ڪندڙ ري سيٽ نه ڪيو ويو. ڪنهن به صورت ۾، جيڪڏهن ڳولها ڪامياب ٿي وڃي ٿي، بوليان قدر سچو موٽايو ويو آهي. ھن طريقي جو ھڪڙو مثال حصو 1 ۾ ڳولي سگھجي ٿو RegexDemo.

  • طريقو boolean find(int start)ميچر کي ري سيٽ ڪري ٿو ۽ ايندڙ ميچ لاء ٽيڪسٽ ڳولي ٿو. ڏسڻ شروع ٿئي ٿو پوزيشن کان بيان ڪيل پيٽرولر طرفان start. جيڪڏهن ڳولها ڪامياب ٿي وڃي ته، بولان ويل سچو موٽايو ويندو. مثال طور، m.find(1);پوزيشن کان شروع ٿيندڙ متن کي اسڪين ڪري ٿو 1(پوزيشن 0 نظر انداز ڪيو ويو آهي). جيڪڏهن پيٽرولر ۾ startمنفي قدر يا هڪ قدر شامل آهي ميچر ٽيڪسٽ جي ڊيگهه کان وڌيڪ، طريقو هڪ استثنا اڇلائي ٿو java.lang.IndexOutOfBoundsException.

  • طريقو boolean matches()سڀني متن کي نموني سان ملائڻ جي ڪوشش ڪري ٿو. اهو هڪ بوليان قدر واپس ڏئي ٿو صحيح جيڪڏهن سڀئي متن نموني سان ملن ٿا. مثال طور، ڪوڊ Pattern p = Pattern.compile("\\w*"); Matcher m = p.matcher("abc!"); System.out.println(p.matches());ڪڍي ٿو falseڇاڪاڻ ته ڪردار !هڪ لفظ ڪردار نه آهي.

  • طريقو boolean lookingAt()مخصوص متن کي نموني سان ملائڻ جي ڪوشش ڪري ٿو. اهو طريقو صحيح موٽائي ٿو جيڪڏهن متن جو ڪو حصو نموني سان ملندو آهي. طريقي جي برعڪس matches();، سڀني متن کي نموني سان ملائڻ جي ضرورت ناهي. مثال طور، Pattern p = Pattern.compile("\\w*"); Matcher m = p.matcher("abc!"); System.out.println(p.lookingAt());اھو ٻاھر نڪرندو true، ڇاڪاڻ ته متن جي شروعات abc!صرف لفظ ٺاھيندڙ اکرن تي مشتمل آھي.

طبقاتي شين جي برعڪس Pattern، طبقاتي شيون Matcherرياستي معلومات برقرار رکن ٿيون. ڪڏهن ڪڏهن توهان کي ضرورت پئجي سگھي ٿي ته هن معلومات کي صاف ڪرڻ لاءِ ميچر کي ري سيٽ ڪرڻ کان پوءِ نمونن جي ڳولا ختم ٿي وئي آهي. حل ڪندڙ کي ريٽ ڪرڻ لاء هيٺيان طريقا موجود آهن:
  • طريقو Matcher reset()ميچر جي حالت کي ري سيٽ ڪري ٿو، بشمول پوزيشن کي ختم ڪرڻ لاء شامل ڪيو وڃي (0 ڏانهن ري سيٽ ڪريو). ايندڙ نمونن جي ڳولا جو عمل شروع ٿئي ٿو ميچر ٽيڪسٽ جي شروعات ۾. موجوده اعتراض ڏانهن حوالو ڏئي ٿو Matcher. مثال طور، m.reset();حل ڪندڙ کي ري سيٽ ڪري ٿو جيڪو حوالو ڏنو ويو آهي m.

  • طريقو Matcher reset(CharSequence text)حل ڪندڙ رياست کي ري سيٽ ڪري ٿو ۽ نئين حل ڪندڙ ٽيڪسٽ کي سيٽ ڪري ٿو text. ايندڙ نمونن جي ڳولا جو عمل نئين ميچر ٽيڪسٽ جي شروعات ۾ شروع ٿئي ٿو. موجوده اعتراض ڏانهن حوالو ڏئي ٿو Matcher. مثال طور، m.reset("new text");حوالو حل ڪندڙ کي ري سيٽ ڪري ٿو m۽ نئين حل ڪندڙ متن کي سيٽ ڪري ٿو "new text".

جاوا ۾ باقاعده اظهار، حصو 3 - 3

آخر ۾ متن شامل ڪرڻ

آخر ۾ شامل ٿيڻ واري ميچر جي پوزيشن ميچر ٽيڪسٽ جي شروعات کي بيان ڪري ٿي جيڪا قسم جي اعتراض جي آخر ۾ شامل ڪئي وئي آهي java.lang.StringBuffer. هيٺيان طريقا هن پوزيشن کي استعمال ڪن ٿا:
  • طريقو ميچر ٽيڪسٽ اکرن کي پڙهي ٿو ۽ انهن کي دليل جي حوالي سان Matcher appendReplacement(StringBuffer sb, String replacement)اعتراض جي آخر ۾ شامل ڪري ٿو . اهو طريقو پوئين نموني جي ميچ کان اڳ آخري ڪردار تي پڙهڻ بند ڪري ٿو. اڳيون، طريقو اعتراض جي قسم جي اعتراض مان اکرن کي اعتراض جي آخر تائين شامل ڪري ٿو ( اسٽرنگ شايد پوئين ڳولها دوران قبضو ڪيل متن جي ترتيبن جا حوالا شامل ڪري سگھن ٿا؛ اهي بيان ڪيل ڪردارن ۽ گروپ نمبرن کي استعمال ڪندي پڪڙيا ويا آهن). آخرڪار، طريقو مقرر ڪري ٿو ميچر پوزيشن جي قيمت کي آخري ملندڙ ڪردار پلس ون جي پوزيشن ۾ شامل ڪيو وڃي، ۽ پوء موجوده ميچر جي حوالي سان واپسي.StringBuffersbStringreplacementStringBufferreplacement($)

  • اهو طريقو Matcher appendReplacement(StringBuffer sb, String replacement)هڪ استثنا ڏئي ٿو java.lang.IllegalStateExceptionجيڪڏهن ميچر اڃا تائين هڪ ميچ نه مليو آهي يا اڳوڻي ڳولا جي ڪوشش ناڪام ٿي. اهو هڪ استثنا اڇلائي ٿو IndexOutOfBoundsExceptionجيڪڏهن لڪير replacementهڪ گرفتاري گروپ کي بيان ڪري ٿي جيڪا نموني ۾ نه آهي).

  • اهو طريقو StringBuffer appendTail(StringBuffer sb)سڀني متن کي هڪ اعتراض ۾ شامل ڪري ٿو StringBuffer۽ انهي اعتراض ڏانهن حوالو ڏئي ٿو. آخري طريقي جي ڪال کان پوء ، باقي ٽيڪسٽ کي اعتراض ڏانهن نقل ڪرڻ جو appendReplacement(StringBuffer sb, String replacement)طريقو ڪال ڪريو .appendTail(StringBuffer sb)StringBuffer

قبضو ڪيل گروپ
جيئن توهان کي ياد آهي ته حصو 1، هڪ ڪيپچر گروپ ڪردارن جو هڪ سلسلو آهي جيڪو قوس ۾ بند ٿيل آهي ( ()) metacharacters. ھن تعمير جو مقصد آھي مليل اکرن کي ذخيرو ڪرڻ لاءِ بعد ۾ ٻيهر استعمال لاءِ نمونن جي ميلاپ دوران. سڀني ڪردارن کي پڪڙيل گروپ مان سمجھيو وڃي ٿو ھڪڙي ھڪڙي ھڪڙي نموني جي ڳولا دوران.
هيٺ ڏنل ڪوڊ ڪال ڪري ٿو appendReplacement(StringBuffer sb, String replacement)۽ طريقن appendTail(StringBuffer sbجي سڀني واقعن کي مٽائڻ لاءِ ماخذ متن ۾ ڪردار جي ترتيب catسان caterpillar:
Pattern p = Pattern.compile("(cat)");
Matcher m = p.matcher("one cat, two cats, or three cats on a fence");
StringBuffer sb = new StringBuffer();
while (m.find())
   m.appendReplacement(sb, "$1erpillar");
m.appendTail(sb);
System.out.println(sb);
هڪ قبضو ڪيل گروپ کي استعمال ڪندي ۽ متبادل متن ۾ ان جو حوالو پروگرام کي ٻڌائي ٿو ته erpillarهر هڪ واقع ٿيڻ کان پوء داخل ڪرڻ لاء cat. هن ڪوڊ تي عمل ڪرڻ جو نتيجو هن طرح نظر اچي ٿو: one caterpillar, two caterpillars, or three caterpillars on a fence

متن کي تبديل ڪرڻ

ڪلاس Matcherاسان کي متن جي متبادل لاءِ ٻه طريقا مهيا ڪري ٿو، مڪمل طور تي appendReplacement(StringBuffer sb, String replacement). انهن طريقن کي استعمال ڪندي، توهان يا ته [بدليل متن] جي پهرين واقعن کي تبديل ڪري سگهو ٿا يا سڀني واقعن کي:
  • اهو طريقو String replaceFirst(String replacement)ميچر کي ري سيٽ ڪري ٿو، هڪ نئون اعتراض ٺاهي ٿو String، ميچر ٽيڪسٽ جي سڀني اکرن کي نقل ڪري ٿو (پهريون ميچ تائين) هن اسٽرنگ ۾، ان جي آخر تائين اکرن کي شامل ڪري ٿو replacement، باقي اکرن کي نقل ڪري ٿو سٹرنگ ڏانهن ۽ واپس ڪري ٿو هڪ . اعتراض String(اسٽرنگ replacementانهن حوالن تي مشتمل ٿي سگھي ٿو جيڪي پوئين ڳولها متن جي ترتيبن دوران ڊالر جي نشانين ۽ قبضو ڪيل گروپ نمبرن کي استعمال ڪندي پڪڙيا ويا).

  • طريقو String replaceAll(String replacement)ساڳيو طريقي سان هلندي آهي String replaceFirst(String replacement)، پر replacementسڀني مليل ميچز کي اسٽرنگ جي اکرن سان تبديل ڪري ٿو.

هڪ باقاعده اظهار \s+ان پٽ ٽيڪسٽ ۾ هڪ يا وڌيڪ وائيٽ اسپيس اکرن جي ڳولا ڪندو آهي. هيٺ، اسان هن باقاعده اظهار کي استعمال ڪنداسين ۽ هڪ طريقي کي سڏينداسين replaceAll(String replacement)نقل واري هنڌن کي هٽائڻ لاء:
Pattern p = Pattern.compile("\\s+");
Matcher m = p.matcher("Удаляем      \t\t лишние пробелы.   ");
System.out.println(m.replaceAll(" "));
هتي نتيجا آهن: Удаляем лишние пробелы. جاوا ۾ باقاعده اظهار، حصو 4 جاوا ۾ باقاعده اظهار، حصو 5
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION