बैकस्लैश को Django द्वारा मेटा-कैरेक्टर के रूप में माना जाता है और दोहरे उद्धरण चिह्नों के अंदर व्याख्या की जाती है। तो E'\\s+')
की एक परत पोस्टग्रेएसक्यूएल सर्वर पर स्ट्रिंग आने से पहले छीन लिया जाता है, जो E'\s+')
को देखेगा . एस्केप स्ट्रिंग का परिणाम 's+'
होगा जो बदले में regexp_split_to_table()
. बना देगा अपने स्ट्रिंग्स को किसी भी संख्या में s
. पर विभाजित करें गैर-मुद्रण स्थान के बजाय, जो वर्ण वर्ग शॉर्टहैंड \s
रेगुलर एक्सप्रेशन के लिए खड़ा है।
आप जो चाहते हैं उसे पाने के लिए स्ट्रिंग में अपने बैकस्लैश को दोगुना करें:E'\\\\s+')
:
"SELECT regexp_split_to_table(field_name, E'\\\\s+') FROM mytable LIMIT 20"
एक विकल्प के रूप में, बैकस्लैश के विशेष अर्थ के साथ समस्याओं से बचने के लिए \
, आप उपयोग कर सकते हैं [[:space:]]
एक ही वर्ण वर्ग को दर्शाने के लिए:
"SELECT regexp_split_to_table(field_name, '[[:space:]]+') FROM mytable LIMIT 20"
अध्याय में विवरण " पैटर्न मिलान" मैनुअल में ।