ฉันต้องการแทนที่ช่องว่างสีขาวมากกว่า 2 ช่องในสตริง แต่ไม่ใช่บรรทัดใหม่ฉันมี regex นี้\s{2,}
แต่มันก็จับคู่บรรทัดใหม่ด้วย
ฉันจะจับคู่ช่องว่างสีขาว 2 ช่องขึ้นไปเท่านั้นโดยไม่ขึ้นบรรทัดใหม่ได้อย่างไร
ฉันใช้ c #
ฉันต้องการแทนที่ช่องว่างสีขาวมากกว่า 2 ช่องในสตริง แต่ไม่ใช่บรรทัดใหม่ฉันมี regex นี้\s{2,}
แต่มันก็จับคู่บรรทัดใหม่ด้วย
ฉันจะจับคู่ช่องว่างสีขาว 2 ช่องขึ้นไปเท่านั้นโดยไม่ขึ้นบรรทัดใหม่ได้อย่างไร
ฉันใช้ c #
คำตอบ:
ใส่อักขระช่องว่างสีขาวที่คุณต้องการจับคู่ภายในคลาสอักขระ ตัวอย่างเช่น:
[ \t]{2,}
จับคู่ช่องว่างหรือแท็บตั้งแต่ 2 ช่องขึ้นไป
คุณยังสามารถทำได้:
[^\S\r\n]{2,}
ซึ่งตรงกับอักขระช่องว่างสีขาวใด ๆ ยกเว้น\r
และ\n
อย่างน้อยสองครั้ง (โปรดทราบว่าทุนS
ใน\S
นั้นสั้นสำหรับ[^\s]
)
\s{2,}
บรรทัดใหม่จึงดำเนินการต่อไป ถ้าเป็นอย่างนั้น\n\s{2,}
ฉันก็เข้าใจ แล้วทำไมการพิมพ์ช่องว่างตามตัวอักษรในวงเล็บจึงใช้งานได้?
\s
ตรงกับช่องว่างแท็บและตัวแบ่งบรรทัด "แล้วทำไมการพิมพ์ช่องว่างตามตัวอักษรในวงเล็บจึงใช้งานได้" เอ้อเพราะมันเป็นเช่นนั้น ไม่รู้จะพูดอะไรอีกเกี่ยวกับเรื่องนั้น :)
Regex เพื่อกำหนดเป้าหมายเพียงสองช่องว่าง: [] {2,} วงเล็บใน regex คือคลาสอักขระ มีความหมายแค่ตัวอักษรในนั้น ที่นี่เป็นเพียงพื้นที่ วงเล็บปีกกาต่อไปนี้หมายถึงสองครั้งขึ้นไป