R Language
आर में नियमित अभिव्यक्ति सिंटैक्स
खोज…
परिचय
यह दस्तावेज़ नियमित अभिव्यक्तियों की मूल बातों का परिचय देता है जैसा कि R में उपयोग किया जाता है। R के नियमित अभिव्यक्ति वाक्यविन्यास के बारे में अधिक जानकारी के लिए, देखें; ?regex
। नियमित अभिव्यक्ति ऑपरेटरों की एक व्यापक सूची के लिए, इस ICU गाइड को नियमित अभिव्यक्तियों पर देखें।
एक चरित्र वेक्टर में एक स्ट्रिंग खोजने के लिए `grep` का उपयोग करें
# General syntax:
# grep(<pattern>, <character vector>)
mystring <- c('The number 5',
'The number 8',
'1 is the loneliest number',
'Company, 3 is',
'Git SSH tag is [email protected]',
'My personal site is www.personal.org',
'path/to/my/file')
grep('5', mystring)
# [1] 1
grep('@', mystring)
# [1] 5
grep('number', mystring)
# [1] 1 2 3
x|y
अर्थ है "x" या "y"
grep('5|8', mystring)
# [1] 1 2
grep('com|org', mystring)
# [1] 5 6
.
Regex में एक विशेष चरित्र है। इसका मतलब है "किसी भी चरित्र से मेल"
grep('The number .', mystring)
# [1] 1 2
डॉट्स मैच करने की कोशिश करते समय सावधान रहें!
tricky <- c('www.personal.org', 'My friend is a cyborg')
grep('.org', tricky)
# [1] 1 2
शाब्दिक चरित्र से मेल खाने के लिए, आपको बैकस्लैश ( \
) के साथ स्ट्रिंग से बचना होगा। हालांकि, आर स्ट्रिंग्स बनाते समय भागने वाले पात्रों की तलाश करने की कोशिश करता है, इसलिए आपको वास्तव में बैकस्लैश से खुद को बचने की जरूरत है (यानी आपको नियमित अभिव्यक्ति पात्रों से बचने की आवश्यकता है।)
grep('\.org', tricky)
# Error: '\.' is an unrecognized escape in character string starting "'\."
grep('\\.org', tricky)
# [1] 1
यदि आप कई पात्रों में से एक का मिलान करना चाहते हैं, तो आप उन पात्रों को कोष्ठक में लपेट सकते हैं ( []
)
grep('[13]', mystring)
# [1] 3 4
grep('[@/]', mystring)
# [1] 5 7
यह चरित्र दृश्यों को इंगित करने के लिए उपयोगी हो सकता है। जैसे [0-4]
0, 1, 2, 3, या 4 से मेल खाएगा, [AZ]
किसी भी बड़े अक्षर से मेल खाएगा, [Az]
किसी भी अपरकेस या लोअरकेस अक्षर से मेल खाएगा, और [A-z0-9]
किसी से मेल खाएगा अक्षर या संख्या (अर्थात सभी वर्णमाला वर्ण)
grep('[0-4]', mystring)
# [1] 3 4
grep('[A-Z]', mystring)
# [1] 1 2 4 5 6
R में कई शॉर्टकट क्लास भी हैं जिनका उपयोग कोष्ठक में किया जा सकता है। उदाहरण के लिए, [:lower:]
az
लिए छोटा है, [:upper:]
AZ
लिए छोटा है, [:alpha:]
Az
, [:digit:]
0-9
, और [:alnum:]
A-z0-9
। ध्यान दें कि इन संपूर्ण अभिव्यक्तियों का उपयोग कोष्ठक के अंदर किया जाना चाहिए; उदाहरण के लिए, किसी एक अंक से मिलान करने के लिए, आप [[:digit:]]
(दोहरे कोष्ठकों पर ध्यान दें) का उपयोग कर सकते हैं। एक अन्य उदाहरण के रूप में, [@[:digit:]/]
अक्षरों का मिलान @
, /
या 0-9
।
grep('[[:digit:]]', mystring)
# [1] 1 2 3 4
grep('[@[:digit:]/]', mystring)
# [1] 1 2 3 4 5 7
ब्रैकेट का उपयोग कैरेट ( ^
) के साथ एक मैच को नकारने के लिए भी किया जा सकता है। उदाहरण के लिए, [^5]
"5" के अलावा किसी भी चरित्र से मेल खाएगा।
grep('The number [^5]', mystring)
# [1] 2