पर्ल में एक सुंदर संशोधक /x
है जो नियमित अभिव्यक्तियों में सफेद जगह को अनदेखा करता है। ऐसा कहने के लिए नहीं है कि यह व्हाइटस्पेस पर ध्यान दिए बिना मेल खाता है, बल्कि यह तब तक रेजेक्स की व्याख्या में सफेद जगह को छोड़ देता है जब तक बच निकला नहीं जाता है।नियमित अभिव्यक्तियों में पर्ल/एक्स (व्हाइटस्पेस को अनदेखा करें) मोड के समतुल्य
आईई। ^x[0-7][x-z][ABCpuq*]*$
/x
मोड में ^x [0-7] [x-z] [ABCpuq*]*$
के रूप में समकक्ष लिखा जा सकता है लेकिन अधिक आसानी से लिखा जा सकता है।
grep
और इसके जैसे आर में ऐसा कोई मोड नहीं लगता है, लेकिन उनके पर्ल संगतता को देखते हुए, पास करने का कोई विकल्प है? मैंने कुछ विकल्पों की कोशिश की है लेकिन ऐसी कोई किस्मत नहीं है।
> grepl("^x[0-7][x-z][ABCpuq*]*$", "x5yuuA")
[1] TRUE
> grepl("^x [0-7] [x-z][ABCpuq*]*$", "x5yuuA")
[1] FALSE
> grepl("^x [0-7] [x-z][ABCpuq*]*$", "x5yuuA", perl=TRUE)
[1] FALSE
> grepl("^x [0-7] [x-z][ABCpuq*]*$/x", "x5yuuA", perl=TRUE)
[1] FALSE
माध्यमिक प्रश्न: आर के पर्ल-स्टाइल रेगेक्स सी सी पीसीआरई लाइब्रेरी पर भरोसा कैसे करते हैं? ऐसा लगता है कि PCRE_Extended
setting bit है जो व्हाइटस्पेस को अनदेखा कर देता है।
एफवाईआई, संपादित करें: माध्यमिक प्रश्न के लिए, आर मैनुअल को रेफरी जोड़ा गया। – zx81