Regex
Pattern.matches(".s", myString)
عبارت بالا اگر mySrting یک رشته دو حرفی باشد که حرف اولش هر چه باشد و حرف دومش s باشد مقدار true را برمیگرداند.
---------------------------
[abc]
با a، b یا c (کلاس ساده) همخوانی دارد.[^abc]
با تمامی کاراکترها به جز a، b یا c منطبق است (negation یا نقیض).[a-zA-Z]
از کاراکتر a گرفته تا z یا از A بزرگ تا Z بزرگ را شامل شده و با هر کاراکتری که بین این دو حرف باشد، منطبق می شود (inclusive range یا شامل شونده ی تمامی حروف بین بازه ی مزبور).[a-d[m-p]]
با کاراکترهایی که بین دو حرف a تا d هستند یا بین بازه ی m تا p قرار دارند، مطابقت پیدا می کند
: [a-dm-p] (union)[a-z&&[def]]
فقط با d، e یا f (intersection) مطابقت دارد.[a-z&&[^bc]]
با تمامی حروفی که بین بازه ی a تا z قرار دارند، به استثنای دو حرف b و c ، منطبق می شود.((subtraction [ad-z]
[a-z&&[^m-p]]
با تمامی حروف بین بازه ی a تا z به استثنای m،n، o و p منطبق می باشد: [a-lq-z]
---------------------------
Regex Quantifier
X?
کاراکتر Xتنها یکبار تکرار می شود یا اصلا تکرار نمی شود.X+
کاراکتر X حداقل یکبار یا دفعات بیشتری تکرار می شود.X*
X
می تواند تکرار نشود یا چندین بار در متن مورد نظر نمونه ی آن یافت شود.X{n}
کاراکتر X فقط به تعداد معین شده تکرار می شود.X{n,}
کاراکتر X به تعداد دفعات معین شده یا بیشتر در متن یا بستر مورد نظر تکرار می شود.X{y,z}
کاراکتر X به تعداد دفعات y تکرار می شود اما حتما کمتر از مقدار z
System.out.println(Pattern.matches("[amn]?", "a"));//true (a or m or n comes one time) System.out.println(Pattern.matches("[amn]?", "aaa"));//false (a comes more than one time)
---------------------------
Metacharacter
.
با هر کاراکتری منطبق می شود (ممکن است با نقطه ی انتهای رشته/terminator نیز منطبق باشد یا با آن مطابقت پیدا نکند.) \d
با تمامی اعداد منطبق می باشد و در واقع ورژن مختصر الگوی[0-9]
می باشد. \D
با تمامی کاراکترهای غیر عددی منطبق می شود و در واقع ورژن مختصر [^0-9]
می باشد. \s
با تمامی کاراکترهای فاصله (whitespace) منطبق می باشد و ورژن مختصر الگوی طولانی [\t\n\x0B\f\r]
می باشد. \S
با تمامی کاراکترها به غیر از فاصله (whitespace) منطبق شده و ورژن مختصر الگوی [^\s]
می باشد. \w
با تمامی کاراکترهای ASCII مطابقت خواهد داشت و ورژن مختصر الگوی [a-zA-Z_0-9]
می باشد.\W
با تمامی کاراکترهای غیر ASCII یا non-word منطبق خواهد شد و در واقع نسخه ی مختصر الگوی[^\w]
می باشد. \b
word boundary word boundary با مکان های قرارگیری منطبق می شود که یک طرف word و طرف دیگر یک non word می باشد.\B
یک non word boundary با هر کاراکتر non word ای که در هر جایی از یک رشته قرار داشته باشد، منطبق می شود.