ਪਾਈਥਨ 3 ਵਿੱਚ ਰੀ ਮੋਡੀਊਲ ਲਈ ਦਸਤਾਵੇਜ਼। ਰੈਗੂਲਰ ਸਮੀਕਰਨ ਲਈ ਮੁੜ ਮੋਡੀਊਲ

ਰੈਗੂਲਰ ਸਮੀਕਰਨ ਲਗਭਗ ਕਿਸੇ ਵੀ ਪ੍ਰੋਗ੍ਰਾਮਿੰਗ ਭਾਸ਼ਾ ਦਾ ਇੱਕ ਬਹੁਤ ਮਸ਼ਹੂਰ ਹਿੱਸਾ ਹਨ। ਉਹ ਤੁਹਾਡੀ ਲੋੜੀਂਦੀ ਜਾਣਕਾਰੀ ਤੱਕ ਤੁਰੰਤ ਪਹੁੰਚ ਕਰਨ ਵਿੱਚ ਤੁਹਾਡੀ ਮਦਦ ਕਰਦੇ ਹਨ। ਖਾਸ ਤੌਰ 'ਤੇ, ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਉਦੋਂ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਜਦੋਂ ਟੈਕਸਟ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੁੰਦਾ ਹੈ। ਪਾਈਥਨ ਮੂਲ ਰੂਪ ਵਿੱਚ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਮੋਡੀਊਲ ਦੇ ਨਾਲ ਆਉਂਦਾ ਹੈ। re, ਜੋ ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਜ਼ਿੰਮੇਵਾਰ ਹੈ।

ਅੱਜ ਅਸੀਂ ਇਸ ਬਾਰੇ ਵਿਸਥਾਰ ਵਿੱਚ ਗੱਲ ਕਰਾਂਗੇ ਕਿ ਇਹ ਆਮ ਤੌਰ 'ਤੇ ਕੀ ਹੈ, ਉਹਨਾਂ ਨਾਲ ਕਿਵੇਂ ਕੰਮ ਕਰਨਾ ਹੈ ਅਤੇ ਮੋਡੀਊਲ ਕਿਵੇਂ ਹੈ re ਮਦਦ ਕਰੇਗਾ.

ਨਿਯਮਤ ਸਮੀਕਰਨ: ਇੱਕ ਜਾਣ-ਪਛਾਣ

ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕੀ ਹੈ? ਲਗਭਗ ਸਾਰੇ. ਉਦਾਹਰਨ ਲਈ, ਇਹ:

  1. ਵੈੱਬ ਐਪਲੀਕੇਸ਼ਨਾਂ ਜਿਹਨਾਂ ਨੂੰ ਟੈਕਸਟ ਪ੍ਰਮਾਣਿਕਤਾ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇੱਕ ਖਾਸ ਉਦਾਹਰਣ ਔਨਲਾਈਨ ਮੇਲ ਕਲਾਇੰਟਸ ਹੈ।
  2. ਟੈਕਸਟ, ਡੇਟਾਬੇਸ ਆਦਿ ਨਾਲ ਸਬੰਧਤ ਕੋਈ ਹੋਰ ਪ੍ਰੋਜੈਕਟ।

ਸੰਟੈਕਸ ਨੂੰ ਪਾਰਸ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਸਾਨੂੰ ਲਾਇਬ੍ਰੇਰੀ ਦੇ ਕੰਮਕਾਜ ਦੇ ਬੁਨਿਆਦੀ ਸਿਧਾਂਤਾਂ ਨੂੰ ਹੋਰ ਵਿਸਥਾਰ ਵਿੱਚ ਸਮਝਣਾ ਚਾਹੀਦਾ ਹੈ re ਅਤੇ ਆਮ ਤੌਰ 'ਤੇ, ਇਸ ਬਾਰੇ ਆਮ ਤੌਰ 'ਤੇ ਕੀ ਚੰਗਾ ਹੈ. ਅਸੀਂ ਅਸਲ ਅਭਿਆਸ ਤੋਂ ਉਦਾਹਰਣਾਂ ਵੀ ਦੇਵਾਂਗੇ, ਜਿੱਥੇ ਅਸੀਂ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਦੀ ਵਿਧੀ ਦਾ ਵਰਣਨ ਕਰਾਂਗੇ। ਤੁਸੀਂ ਅਜਿਹਾ ਟੈਂਪਲੇਟ ਬਣਾ ਸਕਦੇ ਹੋ, ਜੋ ਤੁਹਾਡੇ ਲਈ ਟੈਕਸਟ ਦੇ ਨਾਲ ਕਈ ਤਰ੍ਹਾਂ ਦੀਆਂ ਕਾਰਵਾਈਆਂ ਕਰਨ ਲਈ ਢੁਕਵਾਂ ਹੈ।

ਰੀ ਲਾਇਬ੍ਰੇਰੀ ਵਿੱਚ ਇੱਕ ਟੈਂਪਲੇਟ ਕੀ ਹੈ?

ਇਸਦੇ ਨਾਲ, ਤੁਸੀਂ ਹੋਰ ਫੰਕਸ਼ਨਾਂ ਨੂੰ ਹੋਰ ਅਨੁਕੂਲ ਬਣਾਉਣ ਲਈ ਕਈ ਕਿਸਮਾਂ ਦੀ ਜਾਣਕਾਰੀ ਦੀ ਖੋਜ ਕਰ ਸਕਦੇ ਹੋ, ਉਹਨਾਂ ਨਾਲ ਸੰਬੰਧਿਤ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹੋ। ਅਤੇ, ਬੇਸ਼ਕ, ਇਸ ਡੇਟਾ ਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ.

ਉਦਾਹਰਨ ਲਈ, ਹੇਠਾਂ ਦਿੱਤੇ ਟੈਪਲੇਟ ਨੂੰ ਲਓ: s+. ਇਸਦਾ ਅਰਥ ਹੈ ਕੋਈ ਵੀ ਸਪੇਸ ਅੱਖਰ। ਜੇਕਰ ਤੁਸੀਂ ਇਸ ਵਿੱਚ ਪਲੱਸ ਚਿੰਨ੍ਹ ਜੋੜਦੇ ਹੋ, ਤਾਂ ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਪੈਟਰਨ ਵਿੱਚ ਇੱਕ ਤੋਂ ਵੱਧ ਸਪੇਸ ਸ਼ਾਮਲ ਹਨ। ਇਹ ਉਹਨਾਂ ਟੈਬ ਅੱਖਰਾਂ ਨਾਲ ਵੀ ਮੇਲ ਕਰ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਨੂੰ ਨਾਲ ਬੁਲਾਇਆ ਜਾਂਦਾ ਹੈ t+.

ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ, ਤੁਹਾਨੂੰ ਲਾਇਬ੍ਰੇਰੀ ਨੂੰ ਆਯਾਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ Re. ਉਸ ਤੋਂ ਬਾਅਦ, ਅਸੀਂ ਟੈਂਪਲੇਟ ਨੂੰ ਕੰਪਾਇਲ ਕਰਨ ਲਈ ਇੱਕ ਵਿਸ਼ੇਸ਼ ਕਮਾਂਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਾਂ। ਇਹ ਦੋ ਪੜਾਵਾਂ ਵਿੱਚ ਕੀਤਾ ਜਾਂਦਾ ਹੈ।

>>> ਆਯਾਤ ਮੁੜ

>>> regex = re.compile('s+')

ਖਾਸ ਤੌਰ 'ਤੇ, ਇਹ ਕੋਡ ਇੱਕ ਟੈਂਪਲੇਟ ਨੂੰ ਕੰਪਾਇਲ ਕਰਨ ਦਾ ਕੰਮ ਕਰਦਾ ਹੈ ਜਿਸਦੀ ਵਰਤੋਂ ਕੀਤੀ ਜਾ ਸਕਦੀ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ਸਪੇਸ (ਇੱਕ ਜਾਂ ਵੱਧ) ਦੀ ਖੋਜ ਕਰਨ ਲਈ।

ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਵੱਖ-ਵੱਖ ਸਤਰਾਂ ਤੋਂ ਵੱਖਰੀ ਜਾਣਕਾਰੀ ਪ੍ਰਾਪਤ ਕਰਨਾ

ਮੰਨ ਲਓ ਕਿ ਸਾਡੇ ਕੋਲ ਇੱਕ ਵੇਰੀਏਬਲ ਹੈ ਜਿਸ ਵਿੱਚ ਹੇਠ ਲਿਖੀ ਜਾਣਕਾਰੀ ਹੈ।

>>> ਟੈਕਸਟ = """100 INF ਸੂਚਨਾ ਵਿਗਿਆਨ

213 MAT ਗਣਿਤ  

156 ENG ਅੰਗਰੇਜ਼ੀ»»»

ਇਸ ਵਿੱਚ ਤਿੰਨ ਸਿਖਲਾਈ ਕੋਰਸ ਸ਼ਾਮਲ ਹਨ। ਉਹਨਾਂ ਵਿੱਚੋਂ ਹਰ ਇੱਕ ਵਿੱਚ ਤਿੰਨ ਭਾਗ ਹੁੰਦੇ ਹਨ - ਨੰਬਰ, ਕੋਡ ਅਤੇ ਨਾਮ। ਅਸੀਂ ਦੇਖਦੇ ਹਾਂ ਕਿ ਇਹਨਾਂ ਸ਼ਬਦਾਂ ਵਿਚਕਾਰ ਅੰਤਰਾਲ ਵੱਖਰਾ ਹੈ। ਇਸ ਲਾਈਨ ਨੂੰ ਵੱਖਰੇ ਸੰਖਿਆਵਾਂ ਅਤੇ ਸ਼ਬਦਾਂ ਵਿੱਚ ਵੰਡਣ ਲਈ ਕੀ ਕਰਨਾ ਹੈ? ਇਸ ਟੀਚੇ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਦੋ ਤਰੀਕੇ ਹਨ:

  1. ਇੱਕ ਫੰਕਸ਼ਨ ਨੂੰ ਕਾਲ ਕਰੋ re.split.
  2. ਫੰਕਸ਼ਨ ਲਾਗੂ ਕਰੋ ਵੰਡ ਲਈ regex.

ਇੱਥੇ ਸਾਡੇ ਵੇਰੀਏਬਲ ਲਈ ਹਰੇਕ ਵਿਧੀ ਦੇ ਸੰਟੈਕਸ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਇੱਕ ਉਦਾਹਰਨ ਹੈ।

>>> re.split('s+', ਟੈਕਸਟ)  

# ਜਾਂ

>>> regex.split(ਟੈਕਸਟ)

ਆਉਟਪੁੱਟ: ['100', 'INF', 'ਕੰਪਿਊਟਰ ਸਾਇੰਸ', '213', 'MAT', 'Math', '156', 'ENG', 'English']

ਆਮ ਤੌਰ 'ਤੇ, ਦੋਵੇਂ ਤਰੀਕੇ ਵਰਤੇ ਜਾ ਸਕਦੇ ਹਨ. ਪਰ ਫੰਕਸ਼ਨ ਨੂੰ ਕਈ ਵਾਰ ਵਰਤਣ ਦੀ ਬਜਾਏ ਨਿਯਮਤ ਸਮੀਕਰਨ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਅਸਲ ਵਿੱਚ ਬਹੁਤ ਸੌਖਾ ਹੈ। re.split.

ਤਿੰਨ ਫੰਕਸ਼ਨਾਂ ਨਾਲ ਮੇਲ ਲੱਭਣਾ

ਮੰਨ ਲਓ ਕਿ ਸਾਨੂੰ ਇੱਕ ਸਟ੍ਰਿੰਗ ਤੋਂ ਸਿਰਫ ਸੰਖਿਆਵਾਂ ਕੱਢਣ ਦੀ ਲੋੜ ਹੈ। ਇਸ ਲਈ ਕੀ ਕਰਨ ਦੀ ਲੋੜ ਹੈ?

re.findall()

ਇੱਥੇ ਫੰਕਸ਼ਨ ਲਈ ਇੱਕ ਵਰਤੋਂ ਕੇਸ ਹੈ findall(), ਜੋ ਕਿ, ਰੈਗੂਲਰ ਸਮੀਕਰਨਾਂ ਦੇ ਨਾਲ, ਤੁਹਾਨੂੰ ਇੱਕ ਟੈਕਸਟ ਵੇਰੀਏਬਲ ਤੋਂ ਇੱਕ ਜਾਂ ਇੱਕ ਤੋਂ ਵੱਧ ਸੰਖਿਆਵਾਂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।

>>> ਪ੍ਰਿੰਟ (ਟੈਕਸਟ)  

100 INF ਸੂਚਨਾ ਵਿਗਿਆਨ

213 MAT ਗਣਿਤ  

156 ENG ਅੰਗਰੇਜ਼ੀ

>>> regex_num = re.compile('d+')  

>>> regex_num.findall(text)  

['100', '213', '156']

d ਚਿੰਨ੍ਹ ਦੇ ਨਾਲ, ਅਸੀਂ ਇੱਕ ਟੈਂਪਲੇਟ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ ਜੋ ਕਿਸੇ ਵੇਰੀਏਬਲ ਜਾਂ ਟੈਕਸਟ ਵਿੱਚ ਸਥਿਤ ਕਿਸੇ ਵੀ ਸੰਖਿਆਤਮਕ ਮੁੱਲ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਅਤੇ ਕਿਉਂਕਿ ਅਸੀਂ ਉੱਥੇ ਇੱਕ + ਜੋੜਿਆ ਹੈ, ਇਸਦਾ ਮਤਲਬ ਹੈ ਕਿ ਘੱਟੋ-ਘੱਟ ਇੱਕ ਨੰਬਰ ਮੌਜੂਦ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ। 

ਤੁਸੀਂ ਇਹ ਦੱਸਣ ਲਈ * ਚਿੰਨ੍ਹ ਦੀ ਵਰਤੋਂ ਵੀ ਕਰ ਸਕਦੇ ਹੋ ਕਿ ਕਿਸੇ ਮੈਚ ਨੂੰ ਲੱਭਣ ਲਈ ਕਿਸੇ ਅੰਕ ਦੀ ਮੌਜੂਦਗੀ ਦੀ ਲੋੜ ਨਹੀਂ ਹੈ।

ਪਰ ਸਾਡੇ ਕੇਸ ਵਿੱਚ, ਕਿਉਂਕਿ ਅਸੀਂ + ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ, ਅਸੀਂ ਇਸ ਨਾਲ ਐਕਸਟਰੈਕਟ ਕੀਤਾ ਹੈ findall() ਪਾਠ ਤੋਂ ਕੋਰਸਾਂ ਦੇ 1 ਜਾਂ ਵੱਧ ਡਿਜੀਟਲ ਅਹੁਦਿਆਂ. ਇਸ ਤਰ੍ਹਾਂ, ਸਾਡੇ ਕੇਸ ਵਿੱਚ, ਨਿਯਮਤ ਸਮੀਕਰਨ ਫੰਕਸ਼ਨ ਲਈ ਸੈਟਿੰਗਾਂ ਵਜੋਂ ਕੰਮ ਕਰਦੇ ਹਨ।

re.search() ਬਨਾਮ re.match()

ਜਿਵੇਂ ਕਿ ਤੁਸੀਂ ਫੰਕਸ਼ਨਾਂ ਦੇ ਨਾਮ ਤੋਂ ਅੰਦਾਜ਼ਾ ਲਗਾ ਸਕਦੇ ਹੋ, ਸਭ ਤੋਂ ਪਹਿਲਾਂ ਟੈਕਸਟ ਵਿੱਚ ਇੱਕ ਮੇਲ ਖੋਜਦਾ ਹੈ। ਪ੍ਰਸ਼ਨ: ਕੀ ਅੰਤਰ ਹੈ findall? ਬਿੰਦੂ ਇਹ ਹੈ ਕਿ ਇਹ ਇੱਕ ਖਾਸ ਵਸਤੂ ਵਾਪਸ ਕਰਦਾ ਹੈ ਜੋ ਪੈਟਰਨ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ, ਨਾ ਕਿ ਪਿਛਲੇ ਫੰਕਸ਼ਨ ਵਾਂਗ, ਇੱਕ ਸੂਚੀ ਦੇ ਰੂਪ ਵਿੱਚ ਮਿਲੇ ਨਤੀਜਿਆਂ ਦੀ ਪੂਰੀ ਲੜੀ।

ਬਦਲੇ ਵਿੱਚ, re.match ਫੰਕਸ਼ਨ ਉਹੀ ਕਰਦਾ ਹੈ। ਸਿਰਫ਼ ਸੰਟੈਕਸ ਹੀ ਵੱਖਰਾ ਹੈ। ਟੈਮਪਲੇਟ ਨੂੰ ਸ਼ੁਰੂ ਵਿੱਚ ਰੱਖਿਆ ਜਾਣਾ ਚਾਹੀਦਾ ਹੈ. 

ਆਓ ਇੱਕ ਉਦਾਹਰਨ ਲਈਏ ਜੋ ਇਸ ਨੂੰ ਦਰਸਾਉਂਦੀ ਹੈ।

>>> # ਟੈਕਸਟ ਨਾਲ ਇੱਕ ਵੇਰੀਏਬਲ ਬਣਾਓ

>>> ਟੈਕਸਟ 2 = «»»INF ਸੂਚਨਾ ਵਿਗਿਆਨ

213 MAT ਗਣਿਤ 156″»»  

>>> # regex ਕੰਪਾਇਲ ਕਰੋ ਅਤੇ ਪੈਟਰਨਾਂ ਦੀ ਭਾਲ ਕਰੋ

>>> regex_num = re.compile('d+')  

>>> s = regex_num.search(text2)  

>>> ਪ੍ਰਿੰਟ ('ਪਹਿਲੀ ਸੂਚਕਾਂਕ: ', s.start())  

>>> ਪ੍ਰਿੰਟ('ਆਖਰੀ ਸੂਚਕਾਂਕ:', s.end())  

>>> ਪ੍ਰਿੰਟ(text2[s.start():s.end()]) 

ਪਹਿਲਾ ਸੂਚਕਾਂਕ: 17 

ਆਖਰੀ ਸੂਚਕਾਂਕ: 20

213

ਜੇਕਰ ਤੁਸੀਂ ਇੱਕ ਸਮਾਨ ਨਤੀਜਾ ਇੱਕ ਵੱਖਰੇ ਤਰੀਕੇ ਨਾਲ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚਾਹੁੰਦੇ ਹੋ, ਤਾਂ ਤੁਸੀਂ ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰ ਸਕਦੇ ਹੋ ਗਰੁੱਪ().

ਰੀ ਲਾਇਬ੍ਰੇਰੀ ਨਾਲ ਟੈਕਸਟ ਦੇ ਹਿੱਸੇ ਨੂੰ ਬਦਲਣਾ

ਟੈਕਸਟ ਨੂੰ ਬਦਲਣ ਲਈ, ਫੰਕਸ਼ਨ ਦੀ ਵਰਤੋਂ ਕਰੋ re.sub(). ਮੰਨ ਲਓ ਸਾਡੇ ਕੋਰਸਾਂ ਦੀ ਸੂਚੀ ਥੋੜੀ ਬਦਲ ਗਈ ਹੈ। ਅਸੀਂ ਦੇਖਦੇ ਹਾਂ ਕਿ ਹਰੇਕ ਡਿਜੀਟਲ ਮੁੱਲ ਦੇ ਬਾਅਦ ਸਾਡੇ ਕੋਲ ਇੱਕ ਟੈਬ ਹੈ। ਸਾਡਾ ਕੰਮ ਇਸ ਸਾਰੇ ਕ੍ਰਮ ਨੂੰ ਇੱਕ ਲਾਈਨ ਵਿੱਚ ਜੋੜਨਾ ਹੈ. ਅਜਿਹਾ ਕਰਨ ਲਈ, ਸਾਨੂੰ ਸਮੀਕਰਨ s+ ਨੂੰ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ ਪਾਸ ਕਰਨਾ 

ਮੂਲ ਪਾਠ ਸੀ:

# ਟੈਕਸਟ ਨਾਲ ਇੱਕ ਵੇਰੀਏਬਲ ਬਣਾਓ

>>> ਟੈਕਸਟ = """100 INF ਟੀ ਇਨਫੋਰਮੈਟਿਕਸ

213 MAT t ਗਣਿਤ  

156 ENG t ਅੰਗਰੇਜ਼ੀ»»»  

>>> ਪ੍ਰਿੰਟ (ਟੈਕਸਟ)  

100 ਜਾਣਕਾਰੀ ਸੂਚਨਾ ਵਿਗਿਆਨ

213 MAT ਗਣਿਤ  

156 ਏ.ਐੱਨ.ਜੀ ਅੰਗਰੇਜ਼ੀ ਵਿਚ

ਲੋੜੀਦੀ ਕਾਰਵਾਈ ਕਰਨ ਲਈ, ਅਸੀਂ ਕੋਡ ਦੀਆਂ ਹੇਠ ਲਿਖੀਆਂ ਲਾਈਨਾਂ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਹੈ।

# ਇੱਕ ਜਾਂ ਵੱਧ ਸਪੇਸ ਨੂੰ 1 ਨਾਲ ਬਦਲੋ

>>> regex = re.compile('s+')  

>>> ਪ੍ਰਿੰਟ(regex.sub('', ਟੈਕਸਟ))  

ਨਤੀਜੇ ਵਜੋਂ, ਸਾਡੇ ਕੋਲ ਇੱਕ ਲਾਈਨ ਹੈ. 

101 COM ਕੰਪਿਊਟਰ 205 MAT ਗਣਿਤ 189 ENG ਅੰਗਰੇਜ਼ੀ

ਹੁਣ ਇਕ ਹੋਰ ਸਮੱਸਿਆ ਵੱਲ ਧਿਆਨ ਦਿਓ। ਸਾਨੂੰ ਸਪੇਸ ਲਗਾਉਣ ਦੇ ਕੰਮ ਦਾ ਸਾਹਮਣਾ ਨਹੀਂ ਕਰਨਾ ਪੈ ਰਿਹਾ ਹੈ। ਸਾਡੇ ਲਈ ਇਹ ਬਹੁਤ ਮਹੱਤਵਪੂਰਨ ਹੈ ਕਿ ਸਾਰੇ ਕੋਰਸ ਦੇ ਨਾਮ ਇੱਕ ਨਵੀਂ ਲਾਈਨ 'ਤੇ ਸ਼ੁਰੂ ਹੋਣ। ਅਜਿਹਾ ਕਰਨ ਲਈ, ਇੱਕ ਹੋਰ ਸਮੀਕਰਨ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜੋ ਅਪਵਾਦ ਵਿੱਚ ਨਵੀਂ ਲਾਈਨ ਜੋੜਦਾ ਹੈ। ਇਹ ਕਿਸ ਤਰ੍ਹਾਂ ਦਾ ਪ੍ਰਗਟਾਵਾ ਹੈ?

ਲਾਇਬ੍ਰੇਰੀ Re ਨੈਗੇਟਿਵ ਮੈਚਿੰਗ ਵਰਗੀ ਵਿਸ਼ੇਸ਼ਤਾ ਦਾ ਸਮਰਥਨ ਕਰਦਾ ਹੈ। ਇਹ ਸਿੱਧੇ ਤੋਂ ਵੱਖਰਾ ਹੈ ਕਿਉਂਕਿ ਇਸ ਵਿੱਚ ਸਲੈਸ਼ ਤੋਂ ਪਹਿਲਾਂ ਇੱਕ ਵਿਸਮਿਕ ਚਿੰਨ੍ਹ ਸ਼ਾਮਲ ਹੁੰਦਾ ਹੈ। ਭਾਵ, ਜੇਕਰ ਸਾਨੂੰ ਨਵੀਂ ਲਾਈਨ ਦੇ ਅੱਖਰ ਨੂੰ ਛੱਡਣ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਸਾਨੂੰ n ਦੀ ਬਜਾਏ !n ਲਿਖਣ ਦੀ ਲੋੜ ਹੈ।

ਸਾਨੂੰ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਮਿਲਦਾ ਹੈ।

# ਨਵੀਂ ਲਾਈਨ ਨੂੰ ਛੱਡ ਕੇ ਸਾਰੀਆਂ ਖਾਲੀ ਥਾਂਵਾਂ ਨੂੰ ਹਟਾਓ  

>>> regex = re.compile('((?!n)s+)')  

>>> ਪ੍ਰਿੰਟ(regex.sub('', ਟੈਕਸਟ))  

100 INF ਸੂਚਨਾ ਵਿਗਿਆਨ

213 MAT ਗਣਿਤ  

156 ENG ਅੰਗਰੇਜ਼ੀ

ਨਿਯਮਤ ਸਮੀਕਰਨ ਸਮੂਹ ਕੀ ਹਨ?

ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਦੇ ਸਮੂਹਾਂ ਦੀ ਮਦਦ ਨਾਲ, ਅਸੀਂ ਲੋੜੀਂਦੇ ਵਸਤੂਆਂ ਨੂੰ ਵੱਖਰੇ ਤੱਤਾਂ ਦੇ ਰੂਪ ਵਿੱਚ ਪ੍ਰਾਪਤ ਕਰ ਸਕਦੇ ਹਾਂ, ਨਾ ਕਿ ਇੱਕ ਲਾਈਨ ਵਿੱਚ। 

ਮੰਨ ਲਓ ਕਿ ਸਾਨੂੰ ਕੋਰਸ ਨੰਬਰ, ਕੋਡ ਅਤੇ ਨਾਮ ਇੱਕ ਲਾਈਨ ਵਿੱਚ ਨਹੀਂ, ਸਗੋਂ ਵੱਖਰੇ ਤੱਤਾਂ ਵਜੋਂ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ। ਕੰਮ ਨੂੰ ਪੂਰਾ ਕਰਨ ਲਈ, ਤੁਹਾਨੂੰ ਕੋਡ ਦੀਆਂ ਬਹੁਤ ਸਾਰੀਆਂ ਬੇਲੋੜੀਆਂ ਲਾਈਨਾਂ ਲਿਖਣ ਦੀ ਜ਼ਰੂਰਤ ਹੋਏਗੀ. 

ਵਾਸਤਵ ਵਿੱਚ, ਕੰਮ ਨੂੰ ਬਹੁਤ ਸਰਲ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ. ਤੁਸੀਂ ਸਾਰੀਆਂ ਐਂਟਰੀਆਂ ਲਈ ਟੈਂਪਲੇਟ ਕੰਪਾਇਲ ਕਰ ਸਕਦੇ ਹੋ ਅਤੇ ਸਿਰਫ਼ ਉਹ ਡੇਟਾ ਨਿਰਧਾਰਤ ਕਰ ਸਕਦੇ ਹੋ ਜੋ ਤੁਹਾਨੂੰ ਬਰੈਕਟਾਂ ਤੋਂ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।

ਲਾਈਨਾਂ ਦੀ ਇੱਕ ਬਹੁਤ ਘੱਟ ਗਿਣਤੀ ਹੋਵੇਗੀ. 

# ਕੋਰਸ ਟੈਕਸਟ ਟੈਂਪਲੇਟਸ ਦੇ ਸਮੂਹ ਬਣਾਓ ਅਤੇ ਉਹਨਾਂ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰੋ

>>> course_pattern = '([0-9]+)s*([A-ZY]{3})s*([a-zA-ZoY]{4,})'  

>>> re.findall(course_pattern, text)  

[('100', 'INF', 'ਕੰਪਿਊਟਰ ਸਾਇੰਸ'), ('213', 'MAT', 'Math'), ('156', 'ENG', 'English')]

"ਲਾਲਚੀ" ਮੇਲ ਦੀ ਧਾਰਨਾ

ਮਿਆਰੀ ਅਨੁਸਾਰ, ਰੈਗੂਲਰ ਸਮੀਕਰਨਾਂ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਮੇਲ ਖਾਂਦੇ ਡੇਟਾ ਨੂੰ ਐਕਸਟਰੈਕਟ ਕਰਨ ਲਈ ਪ੍ਰੋਗਰਾਮ ਕੀਤਾ ਜਾਂਦਾ ਹੈ। ਅਤੇ ਭਾਵੇਂ ਤੁਹਾਨੂੰ ਬਹੁਤ ਘੱਟ ਲੋੜ ਹੋਵੇ।

ਆਉ ਇੱਕ ਨਮੂਨਾ HTML ਕੋਡ ਨੂੰ ਵੇਖੀਏ ਜਿੱਥੇ ਸਾਨੂੰ ਟੈਗ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ.

>>> ਟੈਕਸਟ = "ਲਾਲਚੀ ਨਿਯਮਤ ਸਮੀਕਰਨ ਮੈਚਿੰਗ ਦੀ ਉਦਾਹਰਨ"  

>>> re.findall('', ਟੈਕਸਟ)  

['ਲਾਲਚੀ ਨਿਯਮਤ ਸਮੀਕਰਨ ਮੈਚਿੰਗ ਦੀ ਉਦਾਹਰਨ']

ਸਿਰਫ਼ ਇੱਕ ਟੈਗ ਕੱਢਣ ਦੀ ਬਜਾਏ, ਪਾਈਥਨ ਨੂੰ ਪੂਰੀ ਸਤਰ ਮਿਲੀ। ਇਸੇ ਲਈ ਇਸ ਨੂੰ ਲਾਲਚੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ।

ਅਤੇ ਸਿਰਫ ਟੈਗ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਕੀ ਕਰਨਾ ਹੈ? ਇਸ ਸਥਿਤੀ ਵਿੱਚ, ਤੁਹਾਨੂੰ ਆਲਸੀ ਮੈਚਿੰਗ ਦੀ ਵਰਤੋਂ ਕਰਨ ਦੀ ਜ਼ਰੂਰਤ ਹੈ. ਅਜਿਹੇ ਸਮੀਕਰਨ ਨੂੰ ਨਿਸ਼ਚਿਤ ਕਰਨ ਲਈ, ਪੈਟਰਨ ਦੇ ਅੰਤ ਵਿੱਚ ਇੱਕ ਪ੍ਰਸ਼ਨ ਚਿੰਨ੍ਹ ਜੋੜਿਆ ਜਾਂਦਾ ਹੈ।

ਤੁਹਾਨੂੰ ਹੇਠਾਂ ਦਿੱਤਾ ਕੋਡ ਅਤੇ ਦੁਭਾਸ਼ੀਏ ਦਾ ਆਉਟਪੁੱਟ ਮਿਲੇਗਾ।

>>> re.findall('', ਟੈਕਸਟ)  

[”, ”]

ਜੇ ਇਹ ਸਿਰਫ ਪਹਿਲੀ ਵਾਰ ਆਈ ਘਟਨਾ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਲੋੜ ਹੈ, ਤਾਂ ਵਿਧੀ ਵਰਤੀ ਜਾਂਦੀ ਹੈ ਖੋਜ ().

re.search('', text).group()  

"

ਤਦ ਹੀ ਓਪਨਿੰਗ ਟੈਗ ਮਿਲੇਗਾ।

ਪ੍ਰਸਿੱਧ ਸਮੀਕਰਨ ਟੈਮਪਲੇਟ

ਇੱਥੇ ਇੱਕ ਸਾਰਣੀ ਹੈ ਜਿਸ ਵਿੱਚ ਸਭ ਤੋਂ ਵੱਧ ਵਰਤੇ ਜਾਣ ਵਾਲੇ ਨਿਯਮਤ ਸਮੀਕਰਨ ਪੈਟਰਨ ਹਨ।

ਪਾਈਥਨ 3 ਵਿੱਚ ਰੀ ਮੋਡੀਊਲ ਲਈ ਦਸਤਾਵੇਜ਼। ਰੈਗੂਲਰ ਸਮੀਕਰਨ ਲਈ ਮੁੜ ਮੋਡੀਊਲ

ਸਿੱਟਾ

ਅਸੀਂ ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਨਾਲ ਕੰਮ ਕਰਨ ਲਈ ਸਿਰਫ ਸਭ ਤੋਂ ਬੁਨਿਆਦੀ ਤਰੀਕਿਆਂ 'ਤੇ ਵਿਚਾਰ ਕੀਤਾ ਹੈ। ਕਿਸੇ ਵੀ ਹਾਲਤ ਵਿੱਚ, ਤੁਸੀਂ ਦੇਖਿਆ ਹੈ ਕਿ ਉਹ ਕਿੰਨੇ ਮਹੱਤਵਪੂਰਨ ਹਨ. ਅਤੇ ਇੱਥੇ ਇਸ ਨਾਲ ਕੋਈ ਫਰਕ ਨਹੀਂ ਪੈਂਦਾ ਕਿ ਕੀ ਪੂਰੇ ਟੈਕਸਟ ਜਾਂ ਇਸਦੇ ਵਿਅਕਤੀਗਤ ਟੁਕੜਿਆਂ ਨੂੰ ਪਾਰਸ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ, ਕੀ ਇਹ ਕਿਸੇ ਸੋਸ਼ਲ ਨੈਟਵਰਕ 'ਤੇ ਪੋਸਟ ਦਾ ਵਿਸ਼ਲੇਸ਼ਣ ਕਰਨਾ ਜਾਂ ਬਾਅਦ ਵਿੱਚ ਇਸਦੀ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਲਈ ਡੇਟਾ ਇਕੱਠਾ ਕਰਨਾ ਜ਼ਰੂਰੀ ਹੈ। ਨਿਯਮਤ ਸਮੀਕਰਨ ਇਸ ਮਾਮਲੇ ਵਿੱਚ ਇੱਕ ਭਰੋਸੇਯੋਗ ਸਹਾਇਕ ਹਨ.

ਉਹ ਤੁਹਾਨੂੰ ਕੰਮ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ ਜਿਵੇਂ ਕਿ:

  1. ਡੇਟਾ ਦਾ ਫਾਰਮੈਟ ਨਿਰਧਾਰਤ ਕਰਨਾ, ਜਿਵੇਂ ਕਿ ਈਮੇਲ ਪਤਾ ਜਾਂ ਫ਼ੋਨ ਨੰਬਰ।
  2. ਇੱਕ ਸਤਰ ਪ੍ਰਾਪਤ ਕਰਨਾ ਅਤੇ ਇਸਨੂੰ ਕਈ ਛੋਟੀਆਂ ਸਟ੍ਰਿੰਗਾਂ ਵਿੱਚ ਵੰਡਣਾ।
  3. ਟੈਕਸਟ ਨਾਲ ਵੱਖ-ਵੱਖ ਕਾਰਵਾਈਆਂ ਕਰੋ, ਜਿਵੇਂ ਕਿ ਖੋਜ ਕਰਨਾ, ਲੋੜੀਂਦੀ ਜਾਣਕਾਰੀ ਕੱਢਣਾ, ਜਾਂ ਅੱਖਰਾਂ ਦੇ ਹਿੱਸੇ ਨੂੰ ਬਦਲਣਾ।

ਨਿਯਮਤ ਸਮੀਕਰਨ ਵੀ ਤੁਹਾਨੂੰ ਗੈਰ-ਮਾਮੂਲੀ ਕਾਰਵਾਈਆਂ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ। ਪਹਿਲੀ ਨਜ਼ਰ 'ਤੇ, ਇਸ ਵਿਗਿਆਨ ਵਿੱਚ ਮੁਹਾਰਤ ਹਾਸਲ ਕਰਨਾ ਆਸਾਨ ਨਹੀਂ ਹੈ. ਪਰ ਅਭਿਆਸ ਵਿੱਚ, ਹਰ ਚੀਜ਼ ਨੂੰ ਮਾਨਕੀਕ੍ਰਿਤ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਇਸਲਈ ਇਹ ਇੱਕ ਵਾਰ ਪਤਾ ਲਗਾਉਣ ਲਈ ਕਾਫ਼ੀ ਹੈ, ਜਿਸ ਤੋਂ ਬਾਅਦ ਇਹ ਟੂਲ ਨਾ ਸਿਰਫ਼ ਪਾਈਥਨ ਵਿੱਚ, ਸਗੋਂ ਕਿਸੇ ਹੋਰ ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ ਵਿੱਚ ਵੀ ਵਰਤਿਆ ਜਾ ਸਕਦਾ ਹੈ. ਇੱਥੋਂ ਤੱਕ ਕਿ ਐਕਸਲ ਡਾਟਾ ਪ੍ਰੋਸੈਸਿੰਗ ਨੂੰ ਆਟੋਮੈਟਿਕ ਕਰਨ ਲਈ ਨਿਯਮਤ ਸਮੀਕਰਨਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹੈ. ਇਸ ਲਈ ਇਸ ਸਾਧਨ ਦੀ ਵਰਤੋਂ ਨਾ ਕਰਨਾ ਪਾਪ ਹੈ।

ਕੋਈ ਜਵਾਬ ਛੱਡਣਾ