соответствие регулярному выражению в php

Я хочу, чтобы регулярное выражение в php соответствовало операторам: {{User:JYBot/count|700,000}}

commnet: только число 700 000 является переменным, а другое фиксировано.

Я написал это: '/\{\{User:JYBot/count\|\d{1,10}\}\}/' но он не работает должным образом из-за существования / в нем. Это регулярное выражение тоже не правильно работать: '/\{\{User:JYBot\/count\|\d{1,10}\}\}/'

Пожалуйста, помогите мне об этом. С уважением

Немного практические советы. Возьмите свою строку:

 {{User:JYBot/count|700,000}} 

Приложите части, которые должны быть сопоставлены дословно в \Q...\E :

 \Q{{User:JYBot/count|\E ... \Q}}\E 

Теперь замените динамическую часть 700,000 своим шаблоном, например [\d,]{1,10} :

 \Q{{User:JYBot/count|\E[\d,]{1,10}\Q}}\E 

Добавьте разделители (есть больше / , не принимайте ни одну часть строки до сих пор или что-то с круглыми скобками вроде () / {} или [] ), и вы закончили:

 ~\Q{{User:JYBot/count|\E[\d,]{1,10}\Q}}\E~ 

Попробуйте следующее:

  /\{{2}User:JYBot\/count\|([0-9\,]+)\}{2}/is 

Вы, однако, получите запятую в номере, поэтому вам нужно будет str_replace его.

Это должно работать, предполагая, что число разделено запятыми:

 /\{\{User:JYBot\/count\|\d{1,3}(?:,\d{3})*\}\}/ 

Вам либо нужно избегать косой черты, либо использовать разные разделители:

сбрасывание косых черт:

 '/\{\{User:JYBot\/count\|\d{1,10}\}\}/' 

разные разделители:

 '~\{\{User:JYBot/count\|\d{1,10}\}\}~' 

Вам нужно избежать / из парсера регулярных выражений, что означает, что парсеру необходимо увидеть a \ before it. Тем не менее выражение expresion строки "\/" будет оцениваться как "/" – вы избегаете косой черты из строкового литерала синтаксического анализатора PHP, и поэтому символ \ не заканчивается как часть окончательной строки.

Чтобы получить фактическое \ в строке, используйте два из них:

 '/\{\{User:JYBot\\/count\|\d{1,10}\}\}/' 

Затем анализатор регулярных выражений увидит \/ последовательность, которую вы намереваетесь.