জাভা নিয়মিত এক্সপ্রেশন বা অপারেটর


89

এটি বোবা প্রশ্ন হতে পারে তবে আমি এটি কোথাও খুঁজে পেলাম না:

আমি প্রথম বন্ধনী ছাড়া জাভা বা নিয়মিত এক্সপ্রেশন অপারেটর (|) কীভাবে ব্যবহার করতে পারি?

যেমন: টেলিফোন | ফোন | ফ্যাক্স


ঠিক আছে, আপনার কি সমস্যা হচ্ছে?
danben

4
হ্যাঁ, কাজ করা উচিত। ক্লিটাস, ডেনবেন, এবং আমি নিজেও একমত। এছাড়াও, @ উদ্যানবেন - আমার নাম ড্যান বিম, লোল, এত কাছে!
ড্যান বিম

উত্তর:


156

আপনি কেবল পাইপটি তার নিজের ব্যবহার করতে পারেন:

"string1|string2"

উদাহরণ স্বরূপ:

String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|string2", "blah"));

আউটপুট:

blah, blah, string3

প্রথম বন্ধনী ব্যবহারের প্রধান কারণ হ'ল বিকল্পের সুযোগটি সীমাবদ্ধ করা:

String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(1|2)", "blah"));

একই আউটপুট আছে। তবে আপনি যদি এটি করেন:

String s = "string1, string2, string3";
System.out.println(s.replaceAll("string1|2", "blah"));

তুমি পাও:

blah, stringblah, string3

কারণ আপনি "স্ট্রিং 1" বা "2" বলেছিলেন।

আপনি যদি অভিব্যক্তিটির সেই অংশটি ক্যাপচার করতে না চান ?::

String s = "string1, string2, string3";
System.out.println(s.replaceAll("string(?:1|2)", "blah"));

আমার যদি এই স্ট্রিংগুলিকে রেজিএক্সের অন্যান্য টুকরা থেকেও স্ট্রিংগুলি সীমিত করতে হয়? যেমন eee (ff | gg) eee আমার কি প্রথম বন্ধনী ব্যবহার করতে হবে?
এরিক কনার

আহ কিছু নয়। আপনার আপডেট এটি ঠিক করে দেয়। শেষ উদাহরণটি আমি যা খুঁজছিলাম is ধন্যবাদ!
এরিক কনার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.