Java नियमित अभिव्यक्ति में कैरेक्टर क्लास को वर्गाकार कोष्ठक "[ ]" का उपयोग करके परिभाषित किया जाता है, यह उप-अभिव्यक्ति निर्दिष्ट या संभावित वर्णों के सेट से एकल वर्ण से मेल खाती है।
उदाहरण के लिए, नियमित अभिव्यक्ति [abc] एकल वर्ण a, b, या c से मेल खाती है। इसी तरह, "[a-z]" a से z तक के एकल वर्ण से मेल खाती है।
Java रेगुलर एक्सप्रेशन क्लास के कैरेक्टर क्लास के अन्य संस्करण निम्नलिखित हैं:
नेगेशन (Negation): कैरेक्टर क्लास का नेगेशन संस्करण "[^ ]" (वर्गाकार कोष्ठक के भीतर ^ के साथ) के रूप में परिभाषित किया जाता है, यह एक ऐसे एकल वर्ण से मेल खाता है जो निर्दिष्ट या संभावित वर्णों के सेट में नहीं है। उदाहरण के लिए, नियमित अभिव्यक्ति [^abc] a, b, या c को छोड़कर एकल वर्ण से मेल खाती है। इसी तरह, "[^a-z]" a से z तक के वर्णमाला को छोड़कर एक वर्ण से मेल खाती है।
रेंज (Range): कैरेक्टर क्लास का रेंज संस्करण आपको वर्णों की एक श्रृंखला का उपयोग करने की अनुमति देता है। उदाहरण के लिए, अभिव्यक्ति [a-z] वर्णमाला a से z तक के एकल वर्ण से मेल खाती है और अभिव्यक्ति [^A-Z] एक ऐसे वर्ण से मेल खाती है जो बड़ा अक्षर नहीं है।
यूनियन (Union): कैरेक्टर क्लास का यूनियन संस्करण आपको निर्दिष्ट श्रेणियों में से एक से वर्ण से मेल खाने की अनुमति देता है। उदाहरण के लिए, अभिव्यक्ति [a-z[0-9]] एकल वर्ण से मेल खाती है जो या तो एक छोटा वर्णमाला (a-z) है या एक अंक (0-9)।
इंटरसेक्शन (Intersection): कैरेक्टर क्लास का इंटरसेक्शन संस्करण आपको उस वर्ण से मेल खाने की अनुमति देता है जो इंटरसेक्शन संबंध वाली श्रेणियों में सामान्य है। श्रेणियों के बीच एक इंटरसेक्शन संबंध && का उपयोग करके परिभाषित किया जाता है। उदाहरण के लिए, अभिव्यक्ति [a-z&&[r-u]] r से u तक के एकल वर्ण से मेल खाती है।
सब्ट्रैक्शन (Subtraction): आप एक श्रृंखला को दूसरी से घटाकर नई श्रृंखला के रूप में उपयोग कर सकते हैं। आप इसे कैरेक्टर क्लास के दो संस्करणों यानी नेगेशन और इंटरसेक्शन का उपयोग करके प्राप्त कर सकते हैं। उदाहरण के लिए, श्रेणियों [a-l] और [^e-h] का इंटरसेक्शन आपको a से l तक के वर्ण देता है जिसमें [e-h] वर्ण घटा दिए गए हैं।