Java Language
एक स्ट्रिंग को निश्चित लंबाई वाले भागों में विभाजित करना
खोज…
टिप्पणियों
यहां लक्ष्य सामग्री को नहीं खोना है, इसलिए रेगेक्स को किसी भी इनपुट का उपभोग (मिलान) नहीं करना चाहिए। बल्कि यह पिछले लक्ष्य इनपुट के अंतिम चरित्र और अगले लक्ष्य इनपुट के पहले चरित्र के बीच मेल खाना चाहिए। उदाहरण के लिए, 8-वर्ण वाले पदार्थों के लिए, हमें नीचे दिए गए स्थानों पर इनपुट (यानी मैच) को तोड़ने की आवश्यकता है:
a b c d e f g h i j k l m n o p q r s t u v w x y z
^ ^ ^
इनपुट में उन स्थानों को अनदेखा करें जो चरित्र स्थितियों के बीच दिखाने के लिए आवश्यक थे।
एक स्ट्रिंग को ज्ञात लंबाई के सबस्ट्रिंग में तोड़ दें
ट्रिक को regex \G
साथ एक लुक-पीछे का उपयोग करना है, जिसका अर्थ है "पिछले मैच का अंत"।
String[] parts = str.split("(?<=\\G.{8})");
रेगेक्स पिछले मैच के अंत के बाद 8 अक्षर से मेल खाता है। चूंकि इस मामले में मैच शून्य-चौड़ाई है, इसलिए हम "अंतिम मैच के बाद 8 अक्षर" अधिक कह सकते हैं।
आसानी से, इनपुट की शुरुआत के लिए \G
को आरंभ किया जाता है, इसलिए यह इनपुट के पहले भाग के लिए भी काम करता है।
चर की लंबाई में सभी स्ट्रिंग को तोड़ दें
ज्ञात लंबाई उदाहरण के रूप में ही, लेकिन लंबाई regex में डालें:
int length = 5;
String[] parts = str.split("(?<=\\G.{" + length + "})");