【发布时间】:2010-09-05 20:22:06
【问题描述】:
这是我最近遇到的一个问题。我有表单的属性字符串
"x=1 and y=abc and z=c4g and ..."
一些属性具有数值,一些具有字母值,一些混合,一些具有日期,等等。
每个字符串应该以“x=someval and y=anotherval”开头,但有些则没有。我有三件事需要做。
- 验证字符串以确保它们具有
x和y。 - 实际解析
x和y的值。 - 获取字符串的其余部分。
鉴于顶部的示例,这将导致以下变量:
$x = 1;
$y = "abc";
$remainder = "z=c4g and ..."
我的问题是:是否有一种(相当)简单的方法来解析这些 和 使用单个正则表达式进行验证?即:
if ($str =~ /someexpression/)
{
$x = $1;
$y = $2;
$remainder = $3;
}
请注意,字符串可能仅包含 x 和 y 属性。这是一个有效的字符串。
我将发布我的解决方案作为答案,但它不符合我的单一正则表达式偏好。
【问题讨论】: