ここで私が最近遭遇した問題があります。私はフォームの属性文字列を持っています
"x=1 and y=abc and z=c4g and ..."
数値を持つ属性、アルファ値を持つ属性、混在する属性、日付を持つ属性などがあります。
すべての文字列は先頭に" " があるはずx=someval and y=anotherval
ですが、そうでないものもあります。私がしなければならないことが3つあります。
- 文字列を検証して、 と があることを確認
x
しy
ます。 x
との値を実際に解析しますy
。- 残りの文字列を取得します。
上部の例を考えると、これは次の変数になります。
$x = 1;
$y = "abc";
$remainder = "z=c4g and ..."
私の質問は、これらを解析して単一の正規表現で検証する (合理的に) 簡単な方法はありますか? すなわち:
if ($str =~ /someexpression/)
{
$x = $1;
$y = $2;
$remainder = $3;
}
文字列はおよび属性のみ で構成される場合があることに注意してください。これは有効な文字列です。x
y
ソリューションを回答として投稿しますが、単一の正規表現の好みを満たしていません。