ರೆಗ್ಯುಲರ್ ಎಕ್ಸ್ಪ್ರೆಶನ್ಗಳಲ್ಲಿ ವಿಶೇಷ ಸೀಕ್ವೆನ್ಸ್ಗಳು (Special Sequences)
ರೆಗ್ಯುಲರ್ ಎಕ್ಸ್ಪ್ರೆಶನ್ಗಳಲ್ಲಿ, ಬ್ಯಾಕ್ಸ್ಲ್ಯಾಶ್ (\) ನಂತರ ಬರುವ ಕೆಲವು ಕ್ಯಾರೆಕ್ಟರ್ಗಳು ವಿಶೇಷ ಅರ್ಥವನ್ನು ಹೊಂದಿವೆ. ಇವುಗಳನ್ನು "ವಿಶೇಷ ಸೀಕ್ವೆನ್ಸ್ಗಳು" ಎನ್ನುತ್ತಾರೆ. ಇವು ಸಾಮಾನ್ಯ ಕ್ಯಾರೆಕ್ಟರ್ ಸೆಟ್ಗಳಿಗೆ ಶಾರ್ಟ್ಕಟ್ಗಳಾಗಿವೆ.
1. \d
ಯಾವುದೇ ಅಂಕೆಗೆ (digit) ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಇದು [0-9] ಗೆ ಸಮನಾಗಿದೆ.
* ಪ್ಯಾಟರ್ನ್: \d{3}
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: 123, 987
2. \D
ಯಾವುದೇ ಅಂಕೆಯಲ್ಲದ (non-digit) ಕ್ಯಾರೆಕ್ಟರ್ಗೆ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಇದು [^0-9] ಗೆ ಸಮನಾಗಿದೆ.
* ಪ್ಯಾಟರ್ನ್: \D
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: a, @, (ಸ್ಪೇಸ್)
3. \w
ಯಾವುದೇ ವರ್ಡ್ ಕ್ಯಾರೆಕ್ಟರ್ಗೆ (word character) ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ. ವರ್ಡ್ ಕ್ಯಾರೆಕ್ಟರ್ ಎಂದರೆ:
* ಸಣ್ಣಕ್ಷರಗಳು (a-z)
* ದೊಡ್ಡಕ್ಷರಗಳು (A-Z)
* ಅಂಕೆಗಳು (0-9)
* ಅಂಡರ್ಸ್ಕೋರ್ (_)
* ಇದು [a-zA-Z0-9_] ಗೆ ಸಮನಾಗಿದೆ.
* ಪ್ಯಾಟರ್ನ್: \w+
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: python, user_123, Hello
4. \W
ಯಾವುದೇ ವರ್ಡ್ ಕ್ಯಾರೆಕ್ಟರ್ ಅಲ್ಲದ (non-word character) ಕ್ಯಾರೆಕ್ಟರ್ಗೆ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಇದು [^a-zA-Z0-9_] ಗೆ ಸಮನಾಗಿದೆ.
* ಪ್ಯಾಟರ್ನ್: \W
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: @, #, , .
5. \s
ಯಾವುದೇ ವೈಟ್ಸ್ಪೇಸ್ ಕ್ಯಾರೆಕ್ಟರ್ಗೆ (whitespace character) ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಇದು ಸ್ಪೇಸ್ (), ಟ್ಯಾಬ್ (\t), ನ್ಯೂಲೈನ್ (\n), ಕ್ಯಾರೇಜ್ ರಿಟರ್ನ್ (\r) ಮುಂತಾದವುಗಳಿಗೆ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಇದು [ \t\n\r\f\v] ಗೆ ಸಮನಾಗಿದೆ.
* ಪ್ಯಾಟರ್ನ್: hello\sworld
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: hello world
6. \S
ಯಾವುದೇ ವೈಟ್ಸ್ಪೇಸ್ ಅಲ್ಲದ (non-whitespace character) ಕ್ಯಾರೆಕ್ಟರ್ಗೆ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಇದು [^ \t\n\r\f\v] ಗೆ ಸಮನಾಗಿದೆ.
* ಪ್ಯಾಟರ್ನ್: \S+
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: word, email@example.com
7. \b
ವರ್ಡ್ ಬೌಂಡರಿ (word boundary) ಗೆ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ. ಇದು ವರ್ಡ್ ಕ್ಯಾರೆಕ್ಟರ್ (\w) ಮತ್ತು ನಾನ್-ವರ್ಡ್ ಕ್ಯಾರೆಕ್ಟರ್ (\W) ನಡುವಿನ ಸ್ಥಾನವನ್ನು ಸೂಚಿಸುತ್ತದೆ. ಇದು ಶೂನ್ಯ-ಅಗಲದ (zero-width) ಅಸರ್ಷನ್, ಅಂದರೆ ಇದು ಯಾವುದೇ ಕ್ಯಾರೆಕ್ಟರ್ ಅನ್ನು ಬಳಸುವುದಿಲ್ಲ.
* ಪ್ಯಾಟರ್ನ್: \bcat\b (ಇಡೀ ಪದ 'cat' ಗೆ ಮಾತ್ರ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ)
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: "a cat here" ನಲ್ಲಿ cat
* ಮ್ಯಾಚ್ ಆಗುವುದಿಲ್ಲ: "concatenate" ನಲ್ಲಿ cat
ಉದಾಹರಣೆ:
import re
text = "This is a catalog for all cats."
pattern1 = r"cat"
pattern2 = r"\bcat\b"
print(f"'cat' ಗಾಗಿ ಮ್ಯಾಚ್ಗಳು: {re.findall(pattern1, text)}")
print(f"'\\bcat\\b' ಗಾಗಿ ಮ್ಯಾಚ್ಗಳು: {re.findall(pattern2, text)}")
8. \B
ವರ್ಡ್ ಬೌಂಡರಿ ಅಲ್ಲದ (non-word boundary) ಸ್ಥಾನಕ್ಕೆ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಪ್ಯಾಟರ್ನ್: \Bcat\B
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: "concatenate" ನಲ್ಲಿ cat
* ಮ್ಯಾಚ್ ಆಗುವುದಿಲ್ಲ: "a cat here" ನಲ್ಲಿ cat
9. \A
ಸ್ಟ್ರಿಂಗ್ನ ಪ್ರಾರಂಭಕ್ಕೆ ಮಾತ್ರ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ. ಇದು ^ ನಂತೆಯೇ, ಆದರೆ re.MULTILINE ಫ್ಲ್ಯಾಗ್ ಬಳಸಿದಾಗ ^ ಪ್ರತಿ ಸಾಲಿನ ಪ್ರಾರಂಭಕ್ಕೂ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ, ಆದರೆ \A ಯಾವಾಗಲೂ ಇಡೀ ಸ್ಟ್ರಿಂಗ್ನ ಪ್ರಾರಂಭಕ್ಕೆ ಮಾತ್ರ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಪ್ಯಾಟರ್ನ್: \AHello
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: "Hello\nWorld" ನ ಪ್ರಾರಂಭದಲ್ಲಿ Hello
* ಮ್ಯಾಚ್ ಆಗುವುದಿಲ್ಲ: "World\nHello" ನಲ್ಲಿ Hello
10. \Z
ಸ್ಟ್ರಿಂಗ್ನ ಅಂತ್ಯಕ್ಕೆ ಮಾತ್ರ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ. ಇದು $ ನಂತೆಯೇ, ಆದರೆ re.MULTILINE ಫ್ಲ್ಯಾಗ್ ಬಳಸಿದಾಗ $ ಪ್ರತಿ ಸಾಲಿನ ಅಂತ್ಯಕ್ಕೂ ಮ್ಯಾಚ್ ಆಗಬಹುದು, ಆದರೆ \Z ಯಾವಾಗಲೂ ಇಡೀ ಸ್ಟ್ರಿಂಗ್ನ ಅಂತ್ಯಕ್ಕೆ ಮಾತ್ರ ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ.
* ಪ್ಯಾಟರ್ನ್: World\Z
* ಮ್ಯಾಚ್ ಆಗುತ್ತದೆ: "Hello\nWorld" ನ ಅಂತ್ಯದಲ್ಲಿ World
ಸಾರಾಂಶ
| ಸೀಕ್ವೆನ್ಸ್ | ವಿವರಣೆ | ಸಮಾನವಾದದ್ದು |
|---|---|---|
\d |
ಅಂಕೆ (Digit) | [0-9] |
\D |
ಅಂಕೆಯಲ್ಲದ (Non-Digit) | [^0-9] |
\w |
ವರ್ಡ್ ಕ್ಯಾರೆಕ್ಟರ್ (Word Character) | [a-zA-Z0-9_] |
\W |
ವರ್ಡ್ ಕ್ಯಾರೆಕ್ಟರ್ ಅಲ್ಲದ (Non-Word) | [^a-zA-Z0-9_] |
\s |
ವೈಟ್ಸ್ಪೇಸ್ (Whitespace) | [ \t\n\r\f\v] |
\S |
ವೈಟ್ಸ್ಪೇಸ್ ಅಲ್ಲದ (Non-Whitespace) | [^ \t\n\r\f\v] |
\b |
ವರ್ಡ್ ಬೌಂಡರಿ (Word Boundary) | |
\B |
ವರ್ಡ್ ಬೌಂಡರಿ ಅಲ್ಲದ (Non-Word Boundary) | |
\A |
ಸ್ಟ್ರಿಂಗ್ನ ಪ್ರಾರಂಭ (Start of String) | |
\Z |
ಸ್ಟ್ರಿಂಗ್ನ ಅಂತ್ಯ (End of String) |