регулярное выражение для анализа параметров запроса - PullRequest
1 голос
/ 01 июня 2009

Я ищу одно регулярное выражение, совместимое с Perl, которое будет анализировать строки вида:

param1 = value1 & ... & param2 = значение2 & ...

и извлекайте значения только для param1 и param2. Но

  1. param2 может предшествовать param1
  2. Может не быть param1 или param2
  3. param1 или param2 (или оба) могут иметь пустые значения, то есть param1 = & ...

Ответы [ 4 ]

2 голосов
/ 01 июня 2009

Я бы не стал писать свой собственный анализатор запросов. Просто используйте CGI.pm.

2 голосов
/ 01 июня 2009
/[?&]([^=]+)=([^=&]+)/g

Это будет соответствовать любому не = символу, отделенному символом =, и помещать их в $ 1 и $ 2.

или ...

my %argsHash = split(/=|&/, $args);

Это даст вам хэш с параметрами и значениями, который, кажется, работает хорошо, но CGI.pm лучше подходит для всех.

1 голос
/ 01 июня 2009

/(.*?)=(.*?)&/ цикл и захват $1 и $2 должны работать

0 голосов
/ 01 июня 2009

Если это для C ++, рассмотрите возможность использования существующей библиотеки CGI, которая анализирует параметры запроса для вас, вместо того, чтобы заново изобретать подобные вещи.

Одна такая библиотека cgic, CGI-библиотека для C: http://www.boutell.com/cgic/#functions

...