ฉันเข้าใจว่าทำไมผลลัพธ์ที่ต้องการไม่ได้รับสำหรับการแปลงโดยใช้ regex สตริงเช่นFooBar
การที่จะช่วยให้แทนFoo_Bar
Foo_Bar_
ฉันสามารถทำอะไรบางอย่างกับ String.substring substring(0, string.length() - 2)
หรือเพียงแค่แทนที่อักขระตัวสุดท้าย แต่ฉันคิดว่ามีทางออกที่ดีกว่าสำหรับสถานการณ์ดังกล่าว
นี่คือรหัส:
String regex = "([A-Z][a-z]+)";
String replacement = "$1_";
"CamelCaseToSomethingElse".replaceAll(regex, replacement);
/*
outputs: Camel_Case_To_Something_Else_
desired output: Camel_Case_To_Something_Else
*/
คำถาม: กำลังมองหาวิธีที่ดีกว่าเพื่อให้ได้ผลลัพธ์ที่ต้องการหรือไม่?