สัญลักษณ์ของอักขระใด ๆ ใน regex?


149

ฉันสงสัยว่ามีสัญลักษณ์สำหรับตัวเลขใด ๆ (รวมถึงศูนย์) ของอักขระใด ๆ

คำตอบ:


245
.*

.เป็นถ่านใด ๆ*หมายถึงศูนย์ซ้ำหรือมากกว่าครั้ง


2
คำตอบที่ดีแค่เพิ่มดูที่นี่: download.oracle.com/javase/1.4.2/docs/api/java/util/regex/…
Steve

13
gotcha ส่อเสียดคือการที่.*ไม่ได้ตรงกับตัวละครใหม่เส้น ( '\n') ดูคำถามนี้สำหรับข้อมูลเพิ่มเติมเกี่ยวกับหัวข้อนั้น
Captain Man

36

คุณสามารถใช้นิพจน์ทั่วไปนี้ (ช่องว่างหรือช่องว่างใดก็ได้) กี่ครั้งก็ได้ถึง 0

[\s\S]*

นิพจน์นี้จะจับคู่น้อยที่สุดเท่าที่เป็นไปได้ แต่ให้มากที่สุดเท่าที่จำเป็นสำหรับนิพจน์ที่เหลือ

[\s\S]*?

ยกตัวอย่างเช่นใน regex นี้[\s\S]*?BจะตรงกับในaB aBaaaaBแต่ใน regex นี้[\s\S]*Bจะจับคู่aBaaaaBในaBaaaaB.


มีความแตกต่างระหว่าง [\ s \ S] และ.
linqu

9
@linqu .บางครั้งจะไม่ตรงกัน\n(ขึ้นบรรทัดใหม่) ขึ้นอยู่กับตัวเลือกหลายบรรทัด แต่[\s\S]จะตรงกับอักขระใด ๆ
ตัวแทน

19

คุณหมายถึง

.*

. อักขระใด ๆ ยกเว้นอักขระขึ้นบรรทัดใหม่ด้วยโหมด dotall จะรวมอักขระขึ้นบรรทัดใหม่ด้วย

* จำนวนใด ๆ ของนิพจน์ก่อนหน้ารวมถึง 0 ครั้ง


4

ฉันจะใช้.*. .จับคู่อักขระใด ๆ*หมายถึงเหตุการณ์ 0 หรือมากกว่า คุณอาจจะต้องมีสวิทช์ DOTALL เพื่อ regex .เพื่อจับภาพเส้นใหม่ที่มี


-8

ใช่มีอยู่อันหนึ่งมันคือดอกจัน: *

a* // looks for 0 or more instances of "a"

สิ่งนี้ควรครอบคลุมในบทช่วยสอนหรือเอกสาร Java regex ที่คุณค้นหา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.