replaceFirst()
می خواهی فقط «اولین تطبیق» را عوض کنی؟ متد replaceFirst() همین کار را می کند. «عبارت باقاعده (Regular Expression)» یک الگوی جست وجو در متن است. این متد رشته اصلی را تغییر نمی دهد؛ یک رشته جدید می سازد.
تعریف و کاربرد replaceFirst()
متد replaceFirst(regex, replacement) فقط اولین بخش مطابق با regex را با متن replacement جایگزین می کند. خروجی یک «رشته (String)» تازه است.
نکته: می توانی از «ارجاع پشتی (Backreference)» با $n استفاده کنی. $0 یعنی کل متن مطابق شده.
امضای متد (Syntax)
public String replaceFirst(String regex, String replacement);
مثال 1: تعویض اولین "is"
در این مثال، فقط اولین «is» به «at» تبدیل می شود. بقیه دست نخورده می مانند.
public class Main {
public static void main(String[] args) {
String myStr = "This is W3Schools";
String regex = "is";
String result = myStr.replaceFirst(regex, "at");
System.out.println(result);
}
}
مثال 2: پرانتز دور اولین عدد با $0
اینجا فقط اولین عدد پیدا می شود. سپس با $0 همان عدد در پرانتز چاپ می شود.
public class Main {
public static void main(String[] args) {
String myStr = "Quest complete! Earned 30 gold and 500 experience.";
String regex = "[0-9]+";
String result = myStr.replaceFirst(regex, "($0)");
System.out.println(result);
}
}
گام های عملی سریع
- رشته ورودی را آماده کن. کوتاه و ساده.
- الگوی regex را بنویس. دقیق و امن.
- رشته جایگزین را تعیین کن. واضح و کوتاه.
- متد را صدا بزن و خروجی را بررسی کن.
خطاها و نکات مهم
هشدار: اگر الگو غلط باشد، استثنای PatternSyntaxException رخ می دهد. الگو را ساده نگه دار.
نکته: اگر می خواهی همه تطبیق ها عوض شوند، از replaceAll() استفاده کن. اگر فقط کاراکترها مهم هستند، replace() ساده تر است.
مطالعه بیشتر
مرور آموزش الگوها: Java RegEx. صفحه مرجع: W3Schools: replaceFirst(). برای تطبیق کامل با الگو، matches() را ببین.
جمع بندی سریع
- replaceFirst فقط اولین تطبیق را عوض می کند.
- خروجی رشته جدید است.
- با $0 و گروه ها جایگزینی هوشمند بساز.
- الگو غلط باشد، خطا می گیری.