$str = '
Channel: <ChannelId........................................> <State.....> <Time.....>
Exten: <DialedExten.............> CLCID: <ConnectedLineCID.......>
==========================================================================================
Channel: PJSIP/748-00009e7b/AppDial Up 00:00:18
Exten: s CLCID: "IVD-mob-9201105088: +74855238028" <+74855238028>
Channel: PJSIP/803-00009e79/AppDial Up 00:00:37
Exten: s CLCID: "RTK-int-S-88007755008+79021055918" <+79021055918>
Channel: PJSIP/815-00009e78/AppDial Up 00:01:06
Exten: s CLCID: "MTS-ru-S-88007008908+79639104178" <+79639104178>
Channel: PJSIP/820-00009e72/Dial Up 00:02:40
Exten: s CLCID: "CID:9622088888" <+79178858288>
Channel: PJSIP/BEELINE_9622088888-00009e73/AppDial Up 00:02:36
Exten: CLCID: "" <9622088888>
Objects found: 5
';
preg_match_all('~PJSIP/(\d+)\S+\s+Up\s+([\d:]+).+?<\K\+?\d+~s', $str, $m, PREG_SET_ORDER);
print_r($m);
server {
listen 80;
listen [::]:80;
root /var/www/example_com;
index index.php;
server_name example.com;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ ^(?<parent_dir>.+/).+$ {
try_files $uri $uri/ $parent_dir/ $parent_dir$is_args$args;
}
location ~ /\.ht {
deny all;
}
}
(?: [a-z] | [0-9/._-] )+
любое количество букв или не букв.(?!...)
так что можно заглянуть вперёд и проверить что нет два подряд небуквенных [0-9/._-] (?! [0-9/._-] )
String pattern = @"(?xi)
^
(?: (?<separator> (?: [a-z] | [0-9/._-] (?! [0-9/._-] ) )+ )
(?: { (?<filler> [a-z] (?:[0-9/._-]?[a-z])* ) }
| $
)
)+
$";
/{ut-enim_ad}-{minimaveniam}
не подходит.и заполнитель, и разделитель не могут начинаться и не могут заканчиваться небуквенным символом
String pattern = @"(?xi)
^
(?: (?<separator> [a-z] (?:[0-9/._-]?[a-z])* )
(?: { (?<filler> [a-z] (?:[0-9/._-]?[a-z])* ) }
| $
)
)+
$";
if (Regex.Match(text, pattern).Success) {
Console.WriteLine("OK!");
}
nemo-enim{ipsam}volupta/tem_q.uia{voluptas}
-
могут содержать только: латинские буквы, цифры, точка, слеш и нижнее подчеркивание;
{ut-enim_ad}-{minimaveniam}
строка может начинаться только разделителем;
^кириллический1.XN--P1AI
сделать в нижнем регистре или добавить флаг [NC]RewriteEngine on
RewriteCond %{HTTP_HOST} ^site.ru [OR]
RewriteCond %{HTTP_HOST} ^кириллический1.XN--P1AI [OR,NC]
RewriteCond %{HTTP_HOST} ^кириллический2.XN--P1AI [NC]
RewriteRule ^(.*)$ https://mainsite.ru/$1 [R=permanent,L]
The only 100% safe things which may be done inside if in a location context are:
return ...;
rewrite ... last;
map $request_method $var {
GET 0;
HEAD 0;
POST 0;
default 1;
}
if ($var) {
return 444;
}
limit_except GET HEAD POST {
deny all;
}
map $query_string $check_query_string {
"" 0;
default 1;
}
map $request_uri $check_request_uri {
"~*(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php |sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)" 1;
default 0;
}
map $http_cookie $check_cookie {
"~*comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_logged_in" 1;
default 0;
}
map "$request_method:$check_query_string:$check_request_uri:$check_cookie" $cache_hit {
"~^POST" 0;
"~:1" 0;
default 1;
}
GET:0:0:0
GET:1:0:0
GET:0:1:0
RewriteMap lc int:tolower
server {
server_name example.com;
location /static {
return 404;
}
location / {
return 301 https://myexample.com$request_uri;
}
}
(-[a-z]+)*
любое количество повторений шаблона-[a-z]+