πŸ’³ Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π½Π° Linux

ЦСль Π΄Π°Π½Π½ΠΎΠ³ΠΎ руководства – ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипт ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ Bash ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Python для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π² систСмС Linux.

ΠžΠ·Π½Π°ΠΊΠΎΠΌΡŒΡ‚Π΅ΡΡŒ с ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌΠΈ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ скриптов для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки Linux.

РСгулярныС выраТСния для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ – ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½Π° Bash ΠΈ Python

Как Π²Ρ‹ ΡƒΠΆΠ΅ догадались, для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½ΠΎΠΉ ΠΊΠ°Ρ€Ρ‚Ρ‹ Π² Linux ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ мноТСство Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языков программирования.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ просто Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ 16 Ρ†ΠΈΡ„Ρ€ (вмСстС с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ Ρ‚ΠΈΡ€Π΅ Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… случаях).

Π”Ρ€ΡƒΠ³ΠΈΠΌΠΈ словами, Ρ‚Π°ΠΊΠΈΠ΅ числа, ΠΊΠ°ΠΊ:

  • 1234 5678 1234 5678
  • 1234567812345678
  • 1234-5678-1234-5678

Π”Π²Π° самых популярных инструмСнта для выполнСния этой Π·Π°Π΄Π°Ρ‡ΠΈ Π² Linux – ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Bash ΠΈ язык программирования Python.

Оба ΠΎΠ½ΠΈ способны ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ всСго Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΡ… строк ΠΊΠΎΠ΄Π°.

Π’ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹ΠΌ Π½ΠΈΠΆΠ΅, ΠΈ скопируйтС наши ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ скриптов Π² свою систСму, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΡƒ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Bash для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚

Bash-скрипт:

#!/bin/bash



# regexp to get a valid credit card number



echo $1 | grep -qE '^([0-9]{4}[- ]?){3}[0-9]{4}$'



if [ $? -eq 0 ]; then

	echo "$1 is a valid credit card number."

else

	echo "$1 is an invalid credit card number."

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта Bash:

$ chmod +x validate_credit_card_number.sh



$ ./validate_credit_card_number.sh "1234 5678 1234 5678"

1234 5678 1234 5678 is a valid credit card number.



$ ./validate_credit_card_number.sh 1234567812345678

1234567812345678 is a valid credit card number.



$ ./validate_credit_card_number.sh 1234-5678-1234-5678

1234-5678-1234-5678 is a valid credit card number.



$ ./validate_credit_card_number.sh 1234-5678-1234-56786

1234-5678-1234-56786 is an invalid credit card number.



$ ./validate_credit_card_number.sh 1234-55678-1234-5678

1234-55678-1234-5678 is an invalid credit card number.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° языкС Python для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚

Π‘ΠΊΡ€ΠΈΠΏΡ‚ Python:

import re

cc_list=['1234 5678 1234 5678',

'1234567812345678',

'1234-5678-1234-5678',

'1234-5678-1234-56786',

'1234-55678-1234-5678']

pattern = '^([0-9]{4}[- ]?){3}[0-9]{4}$'

for eachnumber in cc_list:

    result = re.match(pattern, eachnumber)

    if result:

        print(eachnumber+" is a valid credit card number.")

    else:

        print(eachnumber+" is an invalid credit card number.")

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ скрипта Python:

$ python3 validate_credit_card_number.py



1234 5678 1234 5678 is a valid credit card number.



1234567812345678 is a valid credit card number.



1234-5678-1234-5678 is a valid credit card number.



1234-5678-1234-56786 is an invalid credit card number.



1234-55678-1234-5678 is an invalid credit card number.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ этом руководствС ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ скрипты Bash ΠΈΠ»ΠΈ Python для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² ΠΊΡ€Π΅Π΄ΠΈΡ‚Π½Ρ‹Ρ… ΠΊΠ°Ρ€Ρ‚ Π² систСмах Linux.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ рСгулярноС Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅, это оказываСтся довольно простой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ для любого ΠΈΠ· этих языков программирования.

И, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки программирования способны ΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒΡΡ с этой Π·Π°Π΄Π°Ρ‡Π΅ΠΉ.

см. Ρ‚Π°ΠΊΠΆΠ΅:



2021-12-21T08:55:20
Π‘ΠΊΡ€ΠΈΠΏΡ‚Ρ‹

Π”Ρ€ΡƒΠ·ΡŒΡ ΠΏΠΎΠΌΠΎΠ³ΠΈΡ‚Π΅ этому ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Ρƒ ΡΡ‚Π°Ρ‚ΡŒ доступнСС Π² ΡΠΎΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сСтях.

НС ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈ ΠΌΠΈΠΌΠΎ ΠΆΠΌΠ°ΠΊΠ½ΠΈ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠΎΠΌΡƒ Ρ‚ΠΎ Π΅Ρ‰Π΅ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π΅Π½!