Нет, вы можете делать только эти типы вставок:
INSERT INTO table (artist, album, track, length)
VALUES
("$artist", "$album", "$track1", "$length1"),
("$artist", "$album", "$track2", "$length2"),
("$artist", "$album", "$track3", "$length3"),
("$artist", "$album", "$track4", "$length4"),
("$artist", "$album", "$track5", "$length5");
Но вы всегда можете написать сценарий, который будет генерировать вышеуказанное, используя любые регулярные выражения, которые вы пожелаете.Затем сценарий будет отвечать за расширение регулярных выражений в соответствующий вышеупомянутый INSERT ...
, а затем запускать его.
Вы можете попробовать сгенерировать шаблоны заранее или как часть содержимого команды VALUES
, используя REGEXP
.
Вы можете часто использовать его в предложении WHERE
следующим образом:
SELECT col1, col2, ..., coln
FROM products
WHERE sku REGEXP '^[A-Za-z]{2,4}-[0-9]{3}-[0-9]{2}$'
Вы можете узнать больше об этом операторе на веб-сайте MySQL в документах REGEXP , но я ' я никогда не видел, чтобы это использовалось таким образом, и никогда не думал пробовать это сам. Я нашел команду, упомянутую в этом SO Q&A под названием: Адаптация регулярного выражения для работы с MySQL .
Некоторые проблемы с вашим кодом:
[[
иpassword
password
будет переменной и поэтому для расширения $password
. #!/bin/sh
, поэтому расширенный тест bash([[
)может быть недоступен Я думаю, что функция лучше всего подходит для проверки того, соответствует ли пароль вашим требованиям, и придумала следующее:
#!/bin/sh
chk_pass () {
local pass=$1
# Check if password contains uppercase
printf '%s' "$pass" | grep -q '[A-Z]' || return 1
# Check if password contains lowercase
printf '%s' "$pass" | grep -q '[a-z]' || return 1
# Check if password contains numbers
printf '%s' "$pass" | grep -q '[0-9]' || return 1
# Check if password contains special characters
printf '%s' "$pass" | grep -q '[^a-zA-Z0-9 \t]' || return 1
return 0
}
printf '%s\n' 'Please enter a password containing at least one number, one uppercase letter, one lowercase letter, and one special character: '
read -rs
if chk_pass "$REPLY"; then
printf '%s\n' 'Success'
else
printf '%s\n' 'Error: Password must contain one number, one uppercase letter, one lowercase letter, and one special character!' >&2
fi
Примечания:
Последнее grep
в функции фактически только проверяет, содержит ли пароль символы , отличные от буквенно-цифровых или пробелов.
Опция -r
для чтения сохранит символы обратной косой черты
. Опция -s
для чтения скроет пользовательский ввод (, полезный для ввода пароля)