NSRegularExpression 不匹配

发布于 2024-12-27 20:37:39 字数 666 浏览 0 评论 0 原文

我正在为以下行创建正则表达式:

Table 'Joella VIII' 6-max Seat #4 is the button

到目前为止,我已经得到了:

self.tableDetailsRegex = [NSRegularExpression regularExpressionWithPattern:@"Table '[A-Za-z0-9 ]*' [0-9]+-max Seat #[0-9]+ is the button" options:NSRegularExpressionAllowCommentsAndWhitespace error:nil];

if([self.tableDetailsRegex numberOfMatchesInString:line options:NSMatchingReportCompletion range:NSMakeRange(0, line.length)] == 1)
{
    NSLog(@"%@", line);
}

所以,我的正则表达式是:

Table '[A-Za-z0-9 ]*' [0-9]+-max Seat #[0-9]+ is the button

我确信所选行会在某个时刻出现,因为我正在打印所有行在我的代码中更进一步......

I'm making a regular expression for the following line:

Table 'Joella VIII' 6-max Seat #4 is the button

So far, I've got this:

self.tableDetailsRegex = [NSRegularExpression regularExpressionWithPattern:@"Table '[A-Za-z0-9 ]*' [0-9]+-max Seat #[0-9]+ is the button" options:NSRegularExpressionAllowCommentsAndWhitespace error:nil];

if([self.tableDetailsRegex numberOfMatchesInString:line options:NSMatchingReportCompletion range:NSMakeRange(0, line.length)] == 1)
{
    NSLog(@"%@", line);
}

So, my regular expression is:

Table '[A-Za-z0-9 ]*' [0-9]+-max Seat #[0-9]+ is the button

And I'm sure the selected line comes by at some point, because I'm printing all the lines a bit further in my code...

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

十年九夏 2025-01-03 20:37:39

您的正则表达式确实与您的字符串匹配。尝试一下这个在线匹配器

问题是您传递的选项: NSRegularExpressionAllowCommentsAndWhitespace 导致匹配忽略空格和 # 符号加上正则表达式中 # 后面的任何您不需要的内容。为选项传递零。

Your regular expression does match your string. Try it in this online matcher.

The problem is the option you pass: NSRegularExpressionAllowCommentsAndWhitespace which causes the match to ignore white space and # signs plus anything following the # in the regular expression, which you don't want. Pass zero for the options.

一场春暖 2025-01-03 20:37:39

您的问题在于您正在使用的选项。来自NSRegularExpression 类参考NSRegularExpressionAllowCommentsAndWhitespace 意味着正则表达式中的空格和 # 后面的任何内容都将被忽略。启用该选项后,正则表达式的行为如下:

Table'[A-Za-z0-9]*'[0-9]+-maxSeat

您可能希望为选项传递 0,以便它们都不会被启用。

self.tableDetailsRegex = [NSRegularExpression regularExpressionWithPattern:@"Table '[A-Za-z0-9 ]*' [0-9]+-max Seat #[0-9]+ is the button" options:0 error:nil];

Your problem is in the options you are using. From the NSRegularExpression Class Reference, NSRegularExpressionAllowCommentsAndWhitespace means that whitespace and anything after a # in the regular expression will be ignored. With that option enabled, the regular expression acts like this:

Table'[A-Za-z0-9]*'[0-9]+-maxSeat

You probably want to pass 0 for the options, so that none of them get enabled.

self.tableDetailsRegex = [NSRegularExpression regularExpressionWithPattern:@"Table '[A-Za-z0-9 ]*' [0-9]+-max Seat #[0-9]+ is the button" options:0 error:nil];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文