ฉันต้องแบ่งตารางออกเป็นคอลัมน์
ข้อความในคอลัมน์ที่อยู่ติดกันสองคอลัมน์ตรงกับนิพจน์ (\S+\s+)+\s*
. แต่บางครั้ง คอลัมน์หนึ่งมีขนาดใหญ่กว่าที่ควรจะเป็นเล็กน้อย และมีเพียงช่องว่างเดียวที่ส่วนท้ายขององค์ประกอบในคอลัมน์ที่ 1 ซึ่ง regex สำหรับคอลัมน์แรกก็จับคอลัมน์ที่สองด้วย ตัวเลข 1 และ 2 ในตัวอย่างแสดงว่าอักขระอยู่ในคอลัมน์ใด ไม่มีตัวเลขเหล่านั้นจริงๆ ในไฟล์ เช่น:
111 111 11111 111111 222 2 2222 222 2
11 1 11 11111 2 22 2222 222 2
111 111 11 11 111 1 111 222 2 222 22 2
11 1 11 11111 2 22 2222 222 2
111 111 11111 11111 222 2 2222 222 2
ความกว้างเล็กน้อยของคอลัมน์แรกคือ 20 อักขระ แต่ถ้ามี "คำ" เริ่มต้นในคำเหล่านั้นและขยายผ่านคอลัมน์ 20 คำนั้นจะยังคงเป็นของคอลัมน์แรกจนถึงช่องว่างที่คั่นด้วย ดูตัวอย่างในบรรทัดที่สาม
มีบางอย่างที่ต้องทำการทดสอบสองครั้งตามลำดับใน regex เดียวหรือไม่: ก่อนอื่นให้เลือก (ในตัวอย่าง) 20 ตัวอักษร แต่ถ้าตัวอักษรที่ 20 แตกต่างจากช่องว่างให้เลือก (.{19}\S+\s)
ในกลุ่มจับภาพสำหรับคอลัมน์แรก?