Substring (transact-sql)substring (transact-sql)
Содержание:
- Типы возвращаемых данныхReturn Types
- JavaScript
- Как изменить регистр строки в PHP: примеры
- RemarksRemarks
- ПримерыExamples
- Форматирование строк
- Работа со строками
- Получение и замена подстроки в PHP: работа со строками
- АргументыArguments
- SQL References
- SQL Учебник
- Пример совпадения цифр
- Пример сопоставления несколько альтернатив.
- Работа со строками в php. Основы PHP с нуля. Урок №7
- Создание и вывод строки
Типы возвращаемых данныхReturn Types
Возвращает символьные данные, если expression имеет один из поддерживаемых символьных типов данных.Returns character data if expression is one of the supported character data types. Возвращает двоичные данные, если аргумент expression имеет один из поддерживаемых двоичных типов данных.Returns binary data if expression is one of the supported binary data types. Возвращенная строка имеет тот же самый тип, как и заданное выражение. Исключения указаны в таблице.The returned string is the same type as the specified expression with the exceptions shown in the table.
Заданное выражениеSpecified expression | Возвращаемый типReturn type |
---|---|
char/varchar/textchar/varchar/text | varcharvarchar |
nchar/nvarchar/ntextnchar/nvarchar/ntext | nvarcharnvarchar |
binary/varbinary/imagebinary/varbinary/image | varbinaryvarbinary |
JavaScript
JS Array
concat()
constructor
copyWithin()
entries()
every()
fill()
filter()
find()
findIndex()
forEach()
from()
includes()
indexOf()
isArray()
join()
keys()
length
lastIndexOf()
map()
pop()
prototype
push()
reduce()
reduceRight()
reverse()
shift()
slice()
some()
sort()
splice()
toString()
unshift()
valueOf()
JS Boolean
constructor
prototype
toString()
valueOf()
JS Classes
constructor()
extends
static
super
JS Date
constructor
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
now()
parse()
prototype
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
toDateString()
toISOString()
toJSON()
toLocaleDateString()
toLocaleTimeString()
toLocaleString()
toString()
toTimeString()
toUTCString()
UTC()
valueOf()
JS Error
name
message
JS Global
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
Infinity
isFinite()
isNaN()
NaN
Number()
parseFloat()
parseInt()
String()
undefined
unescape()
JS JSON
parse()
stringify()
JS Math
abs()
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
cbrt()
ceil()
clz32()
cos()
cosh()
E
exp()
expm1()
floor()
fround()
LN2
LN10
log()
log10()
log1p()
log2()
LOG2E
LOG10E
max()
min()
PI
pow()
random()
round()
sign()
sin()
sqrt()
SQRT1_2
SQRT2
tan()
tanh()
trunc()
JS Number
constructor
isFinite()
isInteger()
isNaN()
isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
prototype
toExponential()
toFixed()
toLocaleString()
toPrecision()
toString()
valueOf()
JS OperatorsJS RegExp
constructor
compile()
exec()
g
global
i
ignoreCase
lastIndex
m
multiline
n+
n*
n?
n{X}
n{X,Y}
n{X,}
n$
^n
?=n
?!n
source
test()
toString()
(x|y)
.
\w
\W
\d
\D
\s
\S
\b
\B
\0
\n
\f
\r
\t
\v
\xxx
\xdd
\uxxxx
JS Statements
break
class
continue
debugger
do…while
for
for…in
for…of
function
if…else
return
switch
throw
try…catch
var
while
JS String
charAt()
charCodeAt()
concat()
constructor
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
length
localeCompare()
match()
prototype
repeat()
replace()
search()
slice()
split()
startsWith()
substr()
substring()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
valueOf()
Как изменить регистр строки в PHP: примеры
Изменение регистра часто используется для сравнения строк и условных операторов. Допустим, пользователь должен ввести имя верховного бога в скандинавской мифологии. В программе есть вариант «Один», с которым и будет сравниваться ответ пользователя. Если введенный текст не будет совпадать с имеющимся (например, пользователь напишет «один» или «ОДИН»), то программа вернет значение false вместо true. Чтобы этого избежать, применяется функция изменения регистра. Это часто используется, если сайт на PHP имеет теги: вместо сотни вариантов слова «личное» («Личное», «личное», «ЛИЧНОЕ» и т. п.) есть только один тег в нижнем регистре.
Функция strtolower() изменяет регистр на нижний. Допустим, есть строка $catName = «Fluffy». Функция strtolower($catName) вернет строку «fluffy». Изменить регистр на верхний можно с помощью функции strtoupper().
RemarksRemarks
Значения start и length должны быть указаны в виде количества символов для типов данных ntext, char или varchar и байтов для типов данных text, image, binary или varbinary.The values for start and length must be specified in number of characters for ntext, char, or varchar data types and bytes for text, image, binary, or varbinary data types.
Аргумент expression должен иметь тип varchar(max) или varbinary(max) , если аргумент start или length содержит значение, превышающее 2 147 483 647.The expression must be varchar(max) or varbinary(max) when the start or length contains a value larger than 2147483647.
ПримерыExamples
A.A. Использование SUBSTRING с символьной строкойUsing SUBSTRING with a character string
Следующий пример показывает, как получить часть символьной строки.The following example shows how to return only a part of a character string. Из таблицы этот запрос возвращает имена системных баз данных в первом столбце, первую букву имени базы данных во втором столбце и третий и четвертый символы в последнем столбце.From the table, this query returns the system database names in the first column, the first letter of the database in the second column, and the third and fourth characters in the final column.
Результирующий набор:Here is the result set.
namename | InitialInitial | ThirdAndFourthCharactersThirdAndFourthCharacters |
---|---|---|
mastermaster | mm | stst |
tempdbtempdb | tt | mpmp |
modelmodel | mm | dede |
msdbmsdb | mm | dbdb |
Далее показано, как можно вывести второй, третий и четвертый символ строковой константы .Here is how to display the second, third, and fourth characters of the string constant .
Результирующий набор:Here is the result set.
Форматирование строк
В PHP есть функции, позволяющие форматировать текстовую строку до использования в программе. Форматирование строки производится сопоставлением самой строки со строкой спецификаций форматирования (format).
- format
-
Строка формата состоит из нуля и более директив: обычных символов (за исключением %), которые копируются напрямую в результирующую строку, и описателей преобразований, каждый из которых заменяется на один из параметров.
Каждый описатель преобразований состоит из знака процента (%), за которым следует один или более дополнительных элементов (в том порядке, в котором они далее перечислены):
- Необязательный описатель знака, указывающий как знак (- или +) будет применен к числу. По умолчанию, используется только знак минус, если число отрицательное. Этот описатель заставляет положительные числа также отображать знак плюс.
- Необязательный описатель заполнения, который определяет, какой символ будет использоваться для дополнения результата до необходимой длины. Это может быть пробел или 0. По умолчанию используется пробел. Альтернативный символ может быть указан с помощью одиночной кавычки (‘). См. примеры ниже.
- Необязательный описатель выравнивания, определяющий выравнивание влево или вправо. По умолчанию выравнивается вправо, — используется для выравнивания влево.
- Необязательное число, описатель ширины, определяющий минимальное число символов, которое будет содержать результат этого преобразования.
- Необязательный описатель точности, указанный в виде точки (.), после которой следует необязательная строка из десятичных чисел, определяющая, сколько десятичных разрядов отображать для чисел с плавающей точкой. При использовании со строками этот описатель выступает в роли обрезающей точки, устанавливающей максимальный лимит символов. Также между точкой и цифрой можно указать символ, используемый при дополнении числа.
-
Описатель типа, определяющий, как трактовать тип данных аргумента. Допустимые типы:
- % — символ процента. Аргумент не используется.
- b — аргумент трактуется как целое и выводится в виде двоичного числа.
- c — аргумент трактуется как целое и выводится в виде символа с соответствующим кодом ASCII.
- d — аргумент трактуется как целое и выводится в виде десятичного числа со знаком.
- e — аргумент трактуется как число в в научной нотации (например, 1.2e+2). Описатель точности указывает на количество знаков после запятой, начиная с версии PHP 5.2.1. В более ранних версиях он обозначал количество значащих цифр (на один знак меньше).
- E — аналогично %e, но использует заглавную букву (например, 1.2E+2).
- f — аргумент трактуется как число с плавающей точкой и также выводится в зависимости от локали.
- F — аргумент трактуется как число с плавающей точкой и также выводится, но без зависимости от локали. Доступно, начиная с версии PHP 5.0.3.
- g — выбирает самую краткую запись из %e и %f.
- G — выбирает самую краткую запись из %E и %f.
- o — аргумент трактуется как целое и выводится в виде восьмеричного числа.
- s — аргумент трактуется как строка.
- u — аргумент трактуется как целое и выводится в виде десятичного числа без знака.
- x — аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в нижнем регистре).
- X — аргумент трактуется как целое и выводится в виде шестнадцатеричного числа (в верхнем регистре).
Переменные будут преобразованы в соответвующий тип для спецификатора:
Обработка типов Тип Спецификатор string s integer d, u, c, o, x, X, b double g, G, e, E, f, F
Пример:
<html> <head> <title>Форматирование вывода </title> </head> <body> <?php $goods = array («помидоры» => 15, «огурцы» => 12, «картофель» => 10); echo «<pre>»; printf («%-25s%25s\n%’=50s\n», «Наименование», «Цена», «»); foreach ($goods as $nam => $prc) printf («%’.-25s%’.22.2f\n», $nam, $prc); echo «</pre>»; ?> </body> </html>
Результат:
Наименование Цена =========================== помидоры…………..15.00 огурцы…………….12.00 картофель………….10.00
Работа со строками
Последнее обновление: 1.11.2015
Строки играют большую роль, задачи на парсинг строк довольно часто встречаются в PHP , поэтому рассмотрим некоторые базовые функции работы со строками.
Но прежде чем начать работу со строками, откроем файл php.ini и найдем в нем следующую строку:
;extension=mbstring
Раскомментируем ее, убрав точку с запятой. И так как у нас файл php.ini изменился, перезапустим веб-сервер Apache.
Подключение расширения mbstring позволит задействовать некоторые дополнительные функции для работы со строками, которые
в стандартном наборе PHP отсутствуют.
Функции strpos() и mb_strpos()
Функция возвращает позицию подстроки или символа $search в строке $str или значение , если
строка $str не содержит подстроки $search:
$input = 'This is the end'; $search = 'is'; $position = strpos($input, $search); // 2 if($position!==false) { echo "Позиция подстроки '$search' в строке '$input': $position"; }
При использовании этой функции надо учитывать, что индексация символов в строке начинается с нуля, поэтому позиция символа ‘T’ будет равна 0.
Поэтому сравнение будет работать некорректно, ведь false и 0 при сравнении и приведении к общему типу будут представлять одно и то же значение.
Поэтому в данном случае корректно использовать только операцию эквивалентности: или .
Теперь применим функцию на другом примере:
$input = 'Мама мыла раму'; $search = 'мы'; $position = strpos($input, $search); // 9
Неожиданно, но результатом функции будет число 9. Хотя мы видим, что истинная позиция подстроки ‘мы’ в исходной строке равна 5.
Все дело в том, что некоторые строковые функции не всегда корректно обрабатывают кириллические символы, и для них лучше использовать другую функцию —
mb_strpos():
$position = mb_strpos($input, $search); // 5
Функция strrpos()
Функция strrpos() во многом аналогична функции , только ищет позицию не первого, а последнего вхождения подстроки в строку:
$input = 'This is the end'; $search = 'is'; $position = strpos($input, $search); // 5
Но опять же данная функция не совсем корректно работает с кириллическими символами, поэтому нам надо использовать ее аналог — mb_strrpos():
$position = mb_strrpos($input, $search);
Функция trim()
Функция удаляет из строки начальные и конечные пробелы, а также управляющие символы ‘\n’, ‘\r’, ‘\t’:
$input = ' Мама мыла раму '; $input = trim($input);
Изменение регистра
Для перевода строки в нижний регистр используется функция strtolower:
$input = 'The World is Mine'; $input = strtolower($input);
Для перевода в нижний регистр строки с кириллическими символами можно использовать функцию mb_strtolower:
$input = mb_strtolower($input);
Для перевода строки в верхний регистр примеяются функции strtoupper()/mb_ strtoupper(),
которые работают аналогично.
Функция strlen()
Функция strlen() возвращает длину строки, то есть количество символов в ней:
$input = 'Hello world'; $num = strlen($input); echo $num;
Функция strlen() также некорректно работает с кириллицей, поэтому в этом случае лучше применять функцию mb_strlen():
$input = 'Мама мыла раму'; $num = mb_strlen($input); echo $num;
Получение подстроки
Применяя функцию , можно получить из одной строки ее определенную часть. Данная функция обрезает строку $str,
начиная c символа в позиции $start до конца строки. С помощью дополнительного необязательного параметра $length можно задать количество вырезаемых символов.
$input = 'The world is mine!'; $subinput1 = substr($input, 2); $subinput2 = substr($input, 2, 6); echo $subinput1; echo "<br />"; echo $subinput2;
Так как данная функция некорректно работает с кириллицей, то вместо нее следует применять функцию mb_substr(),
которая действует аналогично:
$input = 'Мама мыла раму'; $subinput1 = mb_substr($input, 2); $subinput2 = mb_substr($input, 2, 6);
Замена подстрок
Для замены определенной части строки применяется функция . Эта функция заменяет в строке $input все
вхождения подстроки $old на подстроку $new с учетом регистра:
$input = 'Мама мыла раму'; $input = str_replace("мы", "ши", $input); echo $input;
НазадВперед
Получение и замена подстроки в PHP: работа со строками
Получение подстроки осуществляется функцией substr(), которая может принимать два или три аргумента: substr($str, $start, $end). Допустим, у нас есть строка $string = «Fluffy cat», и мы хотим получить подстроку со второго по четвертый символ. Так как нумерация начинается с нуля, то переменная с этой подстрокой будет выглядеть так: $newString = substr($string, 1, 4). Если же мы введем $newString = substr($string, 1), то получим подстроку со второго символа по последний (то есть «luffy»). Этот код идентичен полному коду строки с использованием strlen(): substr($string, 1, strlen($string)).
Для замены подстроки используется функция str_replace(), которая принимает три переменные: str_replace($subStr, $newSub, $str). В отличие от многих функций, str_replace() корректно работает с кириллическими символами и не имеет аналога с префиксом. Пример:
$str = «Сегодня ужасная погода!»;
$newStr = str_replace(«ужасная», «чудесная», $str); //Сегодня чудесная погода!
АргументыArguments
expressionexpressionВыражение типа character, binary, text, ntext или image.Is a character, binary, text, ntext, or image expression.
startstartЦелое число или выражение типа bigint, указывающее начальную позицию возвращаемых символов.Is an integer or bigint expression that specifies where the returned characters start. (Нумерация начинается с 1, то есть первый символ в выражении имеет позицию 1.)(The numbering is 1 based, meaning that the first character in the expression is 1). Если аргумент start имеет значение меньше 1, то возвращаемое выражение начинается с первого символа, который указан в аргументе expression.If start is less than 1, the returned expression will begin at the first character that is specified in expression. В этом случае количество возвращаемых символов является наибольшим значением либо суммы start + length– 1, либо 0.In this case, the number of characters that are returned is the largest value of either the sum of start + length- 1 or 0. Если значение start больше количества символов в выражении значения, возвращается выражение нулевой длины.If start is greater than the number of characters in the value expression, a zero-length expression is returned.
lengthlengthПоложительное целое число или выражение типа bigint, указывающее количество символов выражения expression, которое будет возвращено.Is a positive integer or bigint expression that specifies how many characters of the expression will be returned. Если значение length отрицательно, возникает ошибка и выполнение инструкции прерывается.If length is negative, an error is generated and the statement is terminated. Если сумма start и length больше количества символов в expression, то возвращается целочисленное выражение значения, начинающееся со значения start.If the sum of start and length is greater than the number of characters in expression, the whole value expression beginning at start is returned.
SQL References
SQL Keywords
ADD
ADD CONSTRAINT
ALTER
ALTER COLUMN
ALTER TABLE
ALL
AND
ANY
AS
ASC
BACKUP DATABASE
BETWEEN
CASE
CHECK
COLUMN
CONSTRAINT
CREATE
CREATE DATABASE
CREATE INDEX
CREATE OR REPLACE VIEW
CREATE TABLE
CREATE PROCEDURE
CREATE UNIQUE INDEX
CREATE VIEW
DATABASE
DEFAULT
DELETE
DESC
DISTINCT
DROP
DROP COLUMN
DROP CONSTRAINT
DROP DATABASE
DROP DEFAULT
DROP INDEX
DROP TABLE
DROP VIEW
EXEC
EXISTS
FOREIGN KEY
FROM
FULL OUTER JOIN
GROUP BY
HAVING
IN
INDEX
INNER JOIN
INSERT INTO
INSERT INTO SELECT
IS NULL
IS NOT NULL
JOIN
LEFT JOIN
LIKE
LIMIT
NOT
NOT NULL
OR
ORDER BY
OUTER JOIN
PRIMARY KEY
PROCEDURE
RIGHT JOIN
ROWNUM
SELECT
SELECT DISTINCT
SELECT INTO
SELECT TOP
SET
TABLE
TOP
TRUNCATE TABLE
UNION
UNION ALL
UNIQUE
UPDATE
VALUES
VIEW
WHERE
MySQL Functions
String Functions
ASCII
CHAR_LENGTH
CHARACTER_LENGTH
CONCAT
CONCAT_WS
FIELD
FIND_IN_SET
FORMAT
INSERT
INSTR
LCASE
LEFT
LENGTH
LOCATE
LOWER
LPAD
LTRIM
MID
POSITION
REPEAT
REPLACE
REVERSE
RIGHT
RPAD
RTRIM
SPACE
STRCMP
SUBSTR
SUBSTRING
SUBSTRING_INDEX
TRIM
UCASE
UPPER
Numeric Functions
ABS
ACOS
ASIN
ATAN
ATAN2
AVG
CEIL
CEILING
COS
COT
COUNT
DEGREES
DIV
EXP
FLOOR
GREATEST
LEAST
LN
LOG
LOG10
LOG2
MAX
MIN
MOD
PI
POW
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SUM
TAN
TRUNCATE
Date Functions
ADDDATE
ADDTIME
CURDATE
CURRENT_DATE
CURRENT_TIME
CURRENT_TIMESTAMP
CURTIME
DATE
DATEDIFF
DATE_ADD
DATE_FORMAT
DATE_SUB
DAY
DAYNAME
DAYOFMONTH
DAYOFWEEK
DAYOFYEAR
EXTRACT
FROM_DAYS
HOUR
LAST_DAY
LOCALTIME
LOCALTIMESTAMP
MAKEDATE
MAKETIME
MICROSECOND
MINUTE
MONTH
MONTHNAME
NOW
PERIOD_ADD
PERIOD_DIFF
QUARTER
SECOND
SEC_TO_TIME
STR_TO_DATE
SUBDATE
SUBTIME
SYSDATE
TIME
TIME_FORMAT
TIME_TO_SEC
TIMEDIFF
TIMESTAMP
TO_DAYS
WEEK
WEEKDAY
WEEKOFYEAR
YEAR
YEARWEEK
Advanced Functions
BIN
BINARY
CASE
CAST
COALESCE
CONNECTION_ID
CONV
CONVERT
CURRENT_USER
DATABASE
IF
IFNULL
ISNULL
LAST_INSERT_ID
NULLIF
SESSION_USER
SYSTEM_USER
USER
VERSION
SQL Server Functions
String Functions
ASCII
CHAR
CHARINDEX
CONCAT
Concat with +
CONCAT_WS
DATALENGTH
DIFFERENCE
FORMAT
LEFT
LEN
LOWER
LTRIM
NCHAR
PATINDEX
QUOTENAME
REPLACE
REPLICATE
REVERSE
RIGHT
RTRIM
SOUNDEX
SPACE
STR
STUFF
SUBSTRING
TRANSLATE
TRIM
UNICODE
UPPER
Numeric Functions
ABS
ACOS
ASIN
ATAN
ATN2
AVG
CEILING
COUNT
COS
COT
DEGREES
EXP
FLOOR
LOG
LOG10
MAX
MIN
PI
POWER
RADIANS
RAND
ROUND
SIGN
SIN
SQRT
SQUARE
SUM
TAN
Date Functions
CURRENT_TIMESTAMP
DATEADD
DATEDIFF
DATEFROMPARTS
DATENAME
DATEPART
DAY
GETDATE
GETUTCDATE
ISDATE
MONTH
SYSDATETIME
YEAR
Advanced Functions
CAST
COALESCE
CONVERT
CURRENT_USER
IIF
ISNULL
ISNUMERIC
NULLIF
SESSION_USER
SESSIONPROPERTY
SYSTEM_USER
USER_NAME
MS Access Functions
String Functions
Asc
Chr
Concat with &
CurDir
Format
InStr
InstrRev
LCase
Left
Len
LTrim
Mid
Replace
Right
RTrim
Space
Split
Str
StrComp
StrConv
StrReverse
Trim
UCase
Numeric Functions
Abs
Atn
Avg
Cos
Count
Exp
Fix
Format
Int
Max
Min
Randomize
Rnd
Round
Sgn
Sqr
Sum
Val
Date Functions
Date
DateAdd
DateDiff
DatePart
DateSerial
DateValue
Day
Format
Hour
Minute
Month
MonthName
Now
Second
Time
TimeSerial
TimeValue
Weekday
WeekdayName
Year
Other Functions
CurrentUser
Environ
IsDate
IsNull
IsNumeric
SQL Quick Ref
SQL Учебник
SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии
Пример совпадения цифр
Рассмотрим, как мы будем использовать функцию REGEXP_SUBSTR для сопоставления шаблону цифровых символов. Например:
Oracle PL/SQL
SELECT REGEXP_SUBSTR (‘2, 4, и 10 числа для примера’, ‘\d’)
FROM dual;
—Результат: ‘2 ‘
1 2 3 |
SELECTREGEXP_SUBSTR(‘2, 4, и 10 числа для примера’,’\d’) FROMdual; |
В этом примере будет извлечена первая цифра из строки, как указано в \d. В этом случае он будет соответствовать числу 2.
Мы могли бы изменить наш шаблон для поиска двузначного числа. Например:
Oracle PL/SQL
SELECT REGEXP_SUBSTR (‘2, 4, и 10 числа для примера’, ‘(\d)(\d)’)
FROM dual;
—Результат: ’10’
1 2 3 |
SELECTREGEXP_SUBSTR(‘2, 4, и 10 числа для примера’,'(\d)(\d)’) FROMdual; |
В этом примере будет выведено число, которое имеет две цифры, как указано в (\d)(\d). В этом случае он пропустит числовые значения 2 и 4 и вернет 10.
Рассмотрим, как мы будем использовать функцию REGEXP_SUBSTR со столбцом таблицы и искать двухзначное число. Например:
Oracle PL/SQL
SELECT REGEXP_SUBSTR (address, ‘(\d)(\d)’)
FROM contacts;
1 2 |
SELECTREGEXP_SUBSTR(address,'(\d)(\d)’) FROMcontacts; |
В этом примере мы собираемся извлечь первое двузначное значение из поля address в таблице contacts.
Пример сопоставления несколько альтернатив.
Следующий пример, который мы рассмотрим, включает использование | шаблон. | шаблон используется как «ИЛИ», чтобы указать несколько альтернатив. Например:
Oracle PL/SQL
SELECT REGEXP_SUBSTR (‘AeroSmith’, ‘a|e|i|o|u’)
FROM dual;
—Результат: ‘e’
1 2 3 |
SELECTREGEXP_SUBSTR(‘AeroSmith’,’a|e|i|o|u’) FROMdual; |
Этот пример вернет ‘e’, потому что он ищет первую гласную (a, e, i, o или u) в строке. Поскольку мы не указали значение match_parameter, функция REGEXP_SUBSTR выполнит поиск с учетом регистра, что означает, что ‘A’ в ‘AeroSmith’ сопоставляться не будет.
Чтобы выполнить поиск без учета регистра изменим наш запрос следующим образом:
Oracle PL/SQL
SELECT REGEXP_SUBSTR (‘AeroSmith’, ‘a|e|i|o|u’, 1, 1, ‘i’)
FROM dual;
—Результат: ‘A’
1 2 3 4 |
SELECTREGEXP_SUBSTR(‘AeroSmith’,’a|e|i|o|u’,1,1,’i’) FROMdual; |
Теперь, поскольку мы предоставили match_parameter = ‘i’, запрос в качестве результата вернет ‘A’. На этот раз ‘A’ в ‘AeroSmith’ будет сопоставляться.
Теперь рассмотри, как вы будете использовать эту функцию со столбцом. Итак, допустим, у нас есть таблица contact со следующими данными:
contact_id | last_name |
---|---|
1000 | AeroSmith |
2000 | Joy |
3000 | Scorpions |
Теперь давайте запустим следующий запрос:
Oracle PL/SQL
SELECT contact_id, last_name, REGEXP_SUBSTR (last_name, ‘a|e|i|o|u’, 1, 1, ‘i’) AS «First Vowel»
FROM contacts;
1 2 |
SELECTcontact_id,last_name,REGEXP_SUBSTR(last_name,’a|e|i|o|u’,1,1,’i’)AS»First Vowel» FROMcontacts; |
Результаты, которые будут возвращены запросом:
contact_id | last_name | First Vowel |
---|---|---|
1000 | AeroSmith | A |
2000 | Joy | o |
3000 | Scorpions | o |
Работа со строками в php. Основы PHP с нуля. Урок №7
Всем привет!
Продолжаем изучать основы PHP с нуля!
В этом уроке я расскажу и покажу некоторые функции для работы со строками, например, как в строке сделать замену, определить длину строки, удалить все HTML-теги из строки и т.д.
Вот список названий функций, о которых пойдет речь в этом уроке:
chunk_split()convert_cyr_string()bin2hex()convert_uuencode()md5()str_repeat()str_replace()str_shuffle()strip_tags()strrev()strtolower()strtoupper()substr_replace()substr()ucfirst()ucwords()strlen()str_pad()
chunk_split()chunk_split() – функция php применяется для разделения строки на фрагменты.
Синтаксис:
chunk_split(string,length,end );
Настройки:
string — строка для разделенияlength — число, которое определяет длину кусков (по умолчанию 76).end — строка, которая указывает, что должно быть в конце каждого куска.
Пример:
<?php $str = "StepkinBlog.ru"; echo chunk_split($str,2,"...<br>"); ?>
Что я сделал? Я строку «StepkinBlog.ru» поделил на фрагменты. Через каждые 2 символа в строке будут выводиться две буквы с тремя точками «…» и с новой строки.
Результат:
St…
ep…
ki…
nB…
lo…
g….
ru…
convert_cyr_string()convert_cyr_string() – эта функция php преобразовывает строки из одной кириллической кодировки в другую.
Синтаксис:
convert_cyr_string (str,входная_кодировка, выходная_кодировка );
«str» – эта строка, которая будет перекодироваться.
«входная_кодировка» и «выходная_кодировка» — я думаю, тут все понятно. Задаются здесь параметры кодировки одной буквой.
- k — koi8-r
- w — windows-1251
- i — iso8859-5
- a — x-cp866
- d — x-cp866
- m — x-mac-cyrillic
Пример:
Задание: перекодируем фразу «Привет всем!» из кодировки windows-1251 в koi8-r и обратно.
<? $str1 = "Привет всем!"; $str2 = convert_cyr_string ($str1,"w","k"); echo ("Я перекодировал слово - '$str1' в koi8-r. Вот результат - '$str2'"); echo ("<br>"); $str3 = convert_cyr_string($str2,"k","w"); echo ("Теперь перекодируем слово '$str2' в win. Вот результат - '$str3'"); ?>
Результат:
Я перекодировал слово — ‘Привет всем!’ в koi8-r. Вот результат — ‘рТЙЧЕФ ЧУЕН!’
Теперь перекодируем слово ‘рТЙЧЕФ ЧУЕН!’ в win. Вот результат — ‘Привет всем!’
bin2hex()bin2hex() — производит преобразование символьных данных в шестнадцатеричный вид.
<? $str1 = "Привет всем!"; $str2 = bin2hex($str1); echo($str2); ?>
Можно и так:
<? $str2 = bin2hex ('Привет всем!'); echo ($str2); ?>
Результат:
cff0e8e2e5f220e2f1e5ec21
convert_uuencode()
convert_uuencode() — кодирует данные в формат uuencode
Пример:
<?php echo convert_uuencode ("Мой блог - StepkinBlog.ru"); ?>
«Мой блог — StepkinBlog.ru» перекодируется вот в такие символы:
9S.[I(.’K[N,@+2!3=&5P:VEN0FQO9RYR=0« `
Если нужно расшифровать, то эти перекодированные символы вставляете в коде вместо текста «Мой блог — StepkinBlog.ru»:
<?php echo convert_uudecode ("9S.[I(.'K[N,@+2!3=&5P:VEN0FQO9RYR=0`` `"); ?>
Результат:
Мой блог — StepkinBlog.ru
md5()md5() — возвращает MD5-хэш строки
<?php $stepkinblog = md5("Доброе утро"); print $stepkinblog; ?>
Результат:
ef636e4d03c4aa310ad199d7c88de71a
str_repeat()str_repeat() — возвращает повторение строки заданное количество раз.
Синтаксис:
str_repeat ('что нужно повторить', количество раз);
Пример:
<?php echo str_repeat ('Привет и так 5 раз',5); ?>
Результат:
Привет и так 5 раз Привет и так 5 раз Привет и так 5 раз Привет и так 5 раз Привет и так 5 раз
str_replace()str_replace() — производит замену одних символов в строке другими.
Синтаксис:
str_replace (search, replace, subject)
search — строка или массив поискаreplace — строка или массив заменыsubject — строка или массив, где будет сделана замена.
Пример:
<?php echo str_replace("Петя","Степа", "С добрым утром, Петя!"); ?>
Результат:
С добрым утром, Степа!
str_shuffle()str_shuffle() — возвращает строку с переставленными в ней символами случайным образом.
Пример:
<?php echo str_shuffle ('PHP на StepkinBlog.ru'); ?>
Результат:
krBolHu .geSаpPнPnti
strip_tags()strip_tags() – удаляет HTML и PHP тэги из строки
Пример:
<?php // с учетом HTML тег echo ("<h2><b>PHP</b> - <i>язык программирования.</i></h2>"); // удаляем HTML тэги из строки echo strip_tags("<h2><b>PHP</b> - <i>язык программирования.</i></h2>"); ?>
Результат:
Создание и вывод строки
Мы разберем вывод строки на экран с помощью известной всем языковой конструкции echo. Программист может вывести строку сразу:
echo «Это Новая Строка»
или сначала создать переменную, а затем вывести ее на экран:
$str = «Это Новая Строка»;
echo $str;
Если нужно вывести несколько строк в одной, то прибегают к их конкатенации:
echo «Это» . » Новая» . » Строка»;
или
$str1 = «Это»;
$str2 = «Новая»;
$str3 = «Строка»;
echo $str1 . $str2 . $str3;
В последнем случае на экран будет выведено ЭтоНоваяСтрока. Пробел можно добавить сразу при вызове echo:
echo $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;
В этом случае на экран выведется: «Это Новая Строка». Конкатенация возможна не только при выводе, но и при создании строки:
$str1 = «Это»;
$str2 = «Новая»;
$str3 = «Строка»;
$string = $str1 . ‘ ‘ . $str2 . ‘ ‘ . $str3;
echo $string;
Echo выводит как латинские буквы, так и кириллические. Если одна из переменных содержала число, то при конкатенации это число будет преобразовано в соответствующую строку:
$i = 2;
$sum = $i + $i; //теперь $sum содержит число 4
echo $i . » + » . $i . » = » . $sum;
На экран будет выведено: «2 + 2 = 4».