ฉันมีวัตถุประสงค์นี้:
สตริงที่ระบุ: "Part1-part2-part3-part4-part5"
แบ่งตามการเกิดครั้งที่สองของ '-'
ดังนั้นฉันจึงคาดว่าจะมีอาร์เรย์[ "Part1-part2", "part3-part4-part5" ]
ฉันทำอะไรไป :
"Part1-part2-part3-part4-part5".split("(?<=^\\w+-\\w+)-"
แต่ผลใน JDK 8:
มันไม่ได้พบการแข่งขันของ 2 '-', และผลตอบแทนสตริงทั้งหมด
หลักฐาน:https://ideone.com/myWppm
แต่เมื่อฉันลองใช้เว็บไซต์ประมวลผล regex ออนไลน์และ node.js (หรือ chrome) [Believe me modern js รองรับ lookbehind] ผลลัพธ์ก็เป็นไปตามที่คาดไว้
หลักฐาน:https://ideone.com/ttQWNr
แฮ็คที่ฉันใช้อยู่ตอนนี้ (ไม่มีคุณสมบัติเป็นวิธีแก้ปัญหา):
การใช้ lookahead แทน lookbehind เหตุการณ์ที่ 3 ของ '-' จากท้าย
"Part1-part2-part3-part4-part5".split("-(?=\\w+-\\w+-\\w+$)");
Java สนับสนุนรูปลักษณ์ที่ จำกัด โดยใช้ตัวบ่งชี้ตัวอย่างเช่น {0,100}
เพื่อให้ตรงกับถ่านใด ๆ ยกเว้นยัติภังค์คุณสามารถใช้[^-]ซึ่งเป็นตัวละครคลาสเมื่อตะกี้
หากคุณต้องการยกเว้นการขึ้นบรรทัดใหม่ที่ตรงกันคุณสามารถขยายเป็น [^-\\r\\n]
คุณอาจใช้:
(?<=^[^-]{0,100}-[^-]{0,100})-
ในส่วนต่างๆ
(?<= มองในแง่บวกเบื้องหลังยืนยันสิ่งที่อยู่ทางซ้ายคือ
^ จุดเริ่มต้นของสตริง[^-]{0,100}- จับคู่ 0 - 100 ครั้งอักขระยกเว้น-จากนั้นจับคู่ครั้งแรก-[^-]{0,100} Match 0 - 100 times any char except-`) มองใกล้-จับคู่วินาที-เพื่อแยกการสาธิต Regex | การสาธิต Java
ตัวอย่างเช่น
System.out.println(
Arrays.toString(
"Part1-part2-part3-part4-part5".split("(?<=^[^-]{0,100}-[^-]{0,100})-")
)
);
เอาต์พุต
[Part1-part2, part3-part4-part5]
แทนที่จะใช้split()ให้ใช้การจับคู่:
String input = "Part1-part2-part3-part4-part5";
String regex = "(\\w+-\\w+)-(.*)"
String[] result; // just to simulate result of split()
Matcher m = Pattern.compile(regex).matcher(input);
if (m.matches()) {
result = new String[] { m.group(1), m.group(2) };
} else {
result = new String[] { input };
}
แน่นอนว่ามันเป็นรหัสที่มากกว่าเล็กน้อย แต่คุณสามารถปรับปรุง regex เพื่อทำการตรวจสอบความถูกต้องได้มากขึ้นเช่นไม่มีอักขระพิเศษอื่น ๆ นอกเหนือจาก-(และ_เห็นได้ชัด) แม้กระทั่งสำหรับข้อความหลังขีดที่สอง
Java ไม่รองรับรูปลักษณ์ความกว้างตัวแปร สมมติว่าสตริงป้อนข้อมูลของคุณจะเสมอมีห้าแง่ยัติภังค์แยกออกจากกันเราสามารถแทนคำพูดที่ว่าตรรกะแยกโดยการตรวจสอบว่ามีสองยัติภังค์ในด้านหน้าก่อน spltting:
String input = "Part1-part2-part3-part4-part5";
String[] parts = input.split("-(?=[^-]+-[^-]+-[^-]+$)");
System.out.println(Arrays.toString(parts));
สิ่งนี้พิมพ์:
[Part1-part2, part3-part4-part5]
Jana Duggar เปิดใจเกี่ยวกับการค้นหาความรักของเธอ นี่คือทุกสิ่งที่เธอพูดเกี่ยวกับหัวข้อและกรอบเวลา 5 ปีสำหรับการแต่งงาน
เมื่อเร็ว ๆ นี้ แซม ฮิวแฮน นักแสดงจากเรื่อง 'Outlander' ได้เปิดเผยสิ่งที่เขาจะทำจากกองถ่ายเพื่อระลึกถึงเจมี เฟรเซอร์ บทบาทที่ทำให้เขากลายเป็นดารา
'She Loves You' เขียนขึ้นในหนึ่งชั่วโมง บันทึกเสียงในหนึ่งวัน และเป็นเพลงของ The Beatles ที่มีการแสดงที่ดีที่สุดเพลงหนึ่งในอาชีพของพวกเขา
Dolly Parton และคุณย่า Bessie มีความสัมพันธ์พิเศษ คุณยายพาร์ตันป่วยหนัก แต่นั่นไม่ได้ทำให้ดอลลี่หยุดแกล้งเธอ
ต้นกำเนิดของศาสนาอิสลามย้อนกลับไปได้ถึงต้นศตวรรษที่ 7 บนคาบสมุทรอาหรับ ศาสนาอิสลามเริ่มต้นขึ้นในเมืองเมกกะ ที่ซึ่งชายคนหนึ่งชื่อมูฮัมหมัด พ่อค้าผู้ประสบความสำเร็จจากชนเผ่าที่ทรงอำนาจ ได้รับการเปิดเผยจากพระเจ้า
คุณอาจคิดว่าไม้โอ๊คหรือฮิคคอรีเป็นไม้ที่แข็ง แต่เมื่อต้องพูดถึงไม้ที่แข็งที่สุดในโลกแล้ว พวกมันกลับไม่ใกล้เคียงเลย
มหาสมุทรเต็มไปด้วยความงาม แต่ก็ซ่อนสิ่งมีชีวิตใต้ท้องทะเลที่น่ากลัวที่สุดบางชนิดไว้เช่นกัน สัตว์เหล่านี้หลายชนิดซ่อนตัวอยู่ใต้ผิวน้ำอันมืดมิด ในโลกใต้ทะเลลึกอันแสนกดดันและมืดมิด
หากคุณกำลังต่อสู้กับศัตรูหรือกำลังเตรียมตัวสำหรับโหมด PvP การรู้ถึงการเสริมพลังดาบที่ดีที่สุดใน Minecraft จะช่วยให้คุณได้เปรียบอย่างมาก การเสริมพลังดาบจะช่วยให้คุณสร้างความเสียหายได้มากขึ้น เพิ่มจำนวนม็อบที่ดรอป และเพิ่มความทนทานของดาบ
“เด็ก” โผล่รับเชิญดาราดังพร้อมข่าวร้าย
RAV4 นี้อ้างว่าอยู่ในสภาพที่ดีเยี่ยมและมีไว้สำหรับการเล่นเก้าอี้ดนตรี
ภาพจากโดรนจับภาพนักดับเพลิงที่กำลังพยายามดับไฟ
Eyes of Wakanda เชื่อมโยงโดยตรงกับ MCU พร้อมอัปเดตเกี่ยวกับ X-Men '97, What If..., Daredevil และอีกมากมาย
บรรณาธิการบริหารคนเก่าแก่ที่เข้าร่วม American Vogue ในปี 1988 ได้ประกาศข่าวดังกล่าวในการประชุมพนักงานเมื่อเช้าวันพฤหัสบดีที่ 26 มิถุนายน
สมเด็จพระสันตะปาปาฟรานซิส ประมุขแห่งคริสตจักรคาทอลิกและผู้นำชาวคาทอลิกทั่วโลกราว 1.3 พันล้านคน สิ้นพระชนม์แล้ว สิริพระชนมายุ 88 พรรษา
Ava Gardner แต่งงานกับ Mickey Rooney และ Frank Sintra และเธอยังคบหาดูใจกับดาราฮอลลีวูดอีกหลายคน ต่อไปนี้คือประวัติการออกเดทของ Ava Gardner
จอห์น คลีส แต่งงานกับเจนนิเฟอร์ เวด ภรรยาของเขาในปี 2012 นี่คือทุกสิ่งที่คุณต้องรู้เกี่ยวกับเจนนิเฟอร์ เวด ภรรยาของจอห์น คลีส
มันทำให้ฉันประหลาดใจ ทันใดนั้นมันก็เกิดขึ้นบ่อยๆ มันอยู่กลางทางอีกครั้ง <ไม่ ไม่ใช่คนในมหาสมุทรแปซิฟิก คุณเป็นสีน้ำตาลแดง คนที่งานคาร์นิวัล> ทุกพาดหัวข่าวดัง…..
ในปี 2022 ด้วยการเปิดตัว GPT-3 ทักษะการเขียนดูเหมือนจะมีความสำคัญน้อยลง ด้วย AI คนที่เขียนไม่ดีก็สามารถสร้างพนักงานที่มีคุณภาพได้เช่นกัน
ในโลกที่เปลี่ยนแปลงอย่างรวดเร็วและการแข่งขันในปัจจุบัน อาชีพของคนๆ หนึ่งมีบทบาทสำคัญในการเติบโตส่วนบุคคล ความมั่นคงทางการเงิน และความพึงพอใจในชีวิตโดยรวม อย่างไรก็ตาม ผู้คนจำนวนมากพบว่าตัวเองติดอยู่ในวงจรของความเมื่อยล้าและความไม่พอใจอย่างไม่หยุดยั้ง ค่อยๆ สูญเสียชีวิตการทำงานไป
เมื่อสัปดาห์ที่แล้วฉันสังเกตเห็นข่าวประชาสัมพันธ์ที่เผยแพร่ผ่าน PressGazette (เว็บไซต์ข่าวของสื่ออังกฤษ) บทความประกาศว่า Acast ซึ่งเป็นบริษัทโฮสติ้งและโฆษณาพอดคาสต์ของ Scandi จะเป็นผู้นำกลุ่มผู้เผยแพร่ "อาจมีอิทธิพลมากที่สุด" ในพอดคาสต์