0
string myQuery="RecordFiles/findrecords/$filter=userid eq 844427344589753 and
 recordid eq 55-278-278ac";

下面给出的是我用来验证上述查询的正则表达式。

string myRegexQueryPattern = @"^(RecordFiles/findrecords/\$filter=userid eq)\s(?<userid>\S+)((\s(and recordid eq)\s(?<recordid >\S+))|(\s*$))";

如何更正我的 regEx 以使我的 recordId 为可选且 userId 为必需?

 public static bool ValidateMyQuery(string query, Regex regex)
        {
            Match match = regex.Match(query);

            bool status = false;
            if (match.Success)
            {
                status = true;
            }
            return status;
        }

现在我的 ValidateMyQuery 针对 myQuerystring 返回 true 。但是如果我不发送 recordId ,它返回 false 。我想修改我的正则表达式以便在 recordId 为空时返回 true 。

如何更正我的 regEx 以使我的 recordId 为可选且 userId 为必需?

4

1 回答 1

0

如果您只想断言用户 ID 在那里,您可以使用以下内容:

string myRegexQueryPattern = @"^RecordFiles/findrecords/\$filter=.*userid eq\s\S+.*";

由于 recordid 是可选的,我们不在乎它是否存在。

但是,您的正则表达式建议您要捕获这些值,如果是这种情况,我将更新我的答案。

于 2013-04-14T20:53:22.307 回答