خارج کردن شماره با Regex
سلام من یه آرایه ای دارم توی ستونش مقادیر زیر درج شده:
SomeText +98 913 100 0000 Call
SomeText +98 913 100 0001 Call
یا
SomeText +98 913 100 0000
SomeText +98 913 100 0001
یا
SomeText +989131000000
SomeText +989131000001
به عبارتی هم ممکنه بین شماره ها فضای خالی باشه، هم در ابتدا متنی با تعداد کاراکتر نامعلوم وجود داشته باشه و هم در انتها
کد من هم بصورت زیر هست:
ArrayList<String> phoneList = new ArrayList<String>();
میخوام توی این حلقهFor، تمام درایه های ستون اول، فقط مقدار شماره تلفن رو داشته باشه بدون Spaceیا هر کاراکتر اضافه
for (String number: phoneList) {
number.matches("([0-9]{13})");
///اینجا چی باید بنویسم؟
}
کد Regexمن هم گویا مشکل داره، ولی با همین وجود نمیدونم عمل استخراج شماره از داخل درایه رو چطور انجام بدم، توی جستجوها هم فقط به راه حل هایی برای بررسی مقدار داخل متن بر اساس الگو رسیدم و چیزی از استخراج یا حذف کاراکتر های اضافی نگفته بودند.
ممنون
من میخوام شماره ها رو بصورت گروه برگردونه
یعنی اگر پترن رجکس، گروهی هم باشه من گروه مورد نظرم رو استخراج میکنم
Pattern pattern = Pattern.compile("/*اینجا چی بنویسم*/");
Matcher matcher = pattern.matcher(number);
while (matcher.find()) {
System.out.println("group 1: " + matcher.group(1));
System.out.println("group 2: " + matcher.group(2));
System.out.println("group 3: " + matcher.group(3));
}
جواب سوالم:
Pattern pattern = Pattern.compile("[^+0\\n\\r]*([+98|09][0-9\\s]+)[^\\n\\r+0]*");
برای حذف فضای خالی هم فعلا مجبورم از کلاس Stringاستفاده کنم:
System.out.println("group 1: "+ matcher.group(1).replace(" ", ""));
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .