मेरी login.txt फ़ाइल निम्न प्रविष्टियोंसकारात्मक/ग्रेप और पर्ल के साथ नकारात्मक अग्रदर्शी
abc def
abc 123
def abc
abc de
tha ewe
जब मैं पर्ल का उपयोग कर सकारात्मक अग्रदर्शी करते हैं, मैं निम्नलिखित परिणाम हो रही है शामिल
cat login.txt | perl -ne 'print if /(?)abc\s(?=def)/'
abc def
जब मैं grep का उपयोग करता हूं मुझे निम्नलिखित परिणाम मिल रहा है
cat login.txt | grep -P '(?<=abc)\s(?=def)'
abc def
नकारात्मक दिखने वाले परिणाम perl और grep से निम्नानुसार हैं।
cat login | perl -ne 'print if /(?)abc\s(?!def)/'
abc 123
def abc
abc de
ग्रेप परिणाम
cat login.txt | grep -P '(?<=abc)\s(?!def)'
abc 123
abc de
पर्ल नकारात्मक अग्रदर्शी के लिए डीईएफ़ एबीसी मिलान नहीं हुआ। लेकिन यह डीईबी एबीसी से मेल नहीं खाया जाना चाहिए, क्योंकि मैं एबीसी की जांच कर रहा हूं और फिर पैटर्न को डीफ़ कर रहा हूं। सही परिणाम लौटने grep।
मेरे perl पैटर्न में कुछ याद आ रही है?
'(?) Abc' बिल्कुल सकारात्मक दिखने वाला रेगेक्स नहीं है; आप '(? =) abc' चाहते थे। डॉक्टर को अधिक बारीकी से दोबारा पढ़ें, मैं मानता हूं कि यह एक अविश्वसनीय रूप से घना पढ़ा गया है और प्रयोग करते समय सबसे अच्छा सीखा है ... – smci