Regex 使用正则表达式检查字符串中的第三个字符
我必须检查字符串中的第三个字符。我正试着用NSPredicate做这件事。我认为正则表达式应该是..3*,所以它会找到每个第三个字符为3的字符串。但它不起作用,我也尝试了其他一些方法,但没有成功:(。有人能帮我吗 检查的简单代码Regex 使用正则表达式检查字符串中的第三个字符,regex,cocoa,ios5,nspredicate,Regex,Cocoa,Ios5,Nspredicate,我必须检查字符串中的第三个字符。我正试着用NSPredicate做这件事。我认为正则表达式应该是..3*,所以它会找到每个第三个字符为3的字符串。但它不起作用,我也尝试了其他一些方法,但没有成功:(。有人能帮我吗 检查的简单代码 - (IBAction)btnCheckPerformClick:(id)sender { _chkOk.state = NO; NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like[
- (IBAction)btnCheckPerformClick:(id)sender {
_chkOk.state = NO;
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like[c] %@", _txtRegExpression.stringValue];
NSLog(@"%@", predicate);
if([predicate evaluateWithObject:_txtCheckingText.stringValue])
_chkOk.state = YES;
}
谢谢您又少了一个点-使用
.3.*
。您可能还想使用^..3.*$
将其锚定到字符串的开头和结尾。您又少了一个点-使用.3.*
将其锚定到字符串的开头和结尾>..3*表示输入中任意位置的任意两个字符后跟可选3。您需要^..3
,即从行首开始的任意两个字符后跟3。.3*
表示输入中任意位置的任意两个字符后跟可选3。您想要^..3
,即任何字符两个字符后跟3,从行首开始
..3*
那个正则表达式不能满足您的需要
上面写着,任意两个字符,然后是任意数量的3(包括no 3)
这个怎么样
^..3.*$
那个正则表达式不能满足您的需要
上面写着,任意两个字符,然后是任意数量的3(包括no 3)
这个怎么样
^..3.*$
谓词格式语言中的
LIKE
运算符只理解简单的通配符(?
和*
)。如果要使用正则表达式,需要使用匹配
有关更多详细信息,请参阅
或者,使用NSRegularExpression
谓词格式语言中的LIKE
运算符只能理解简单的通配符(?
和*
)。如果要使用正则表达式,则需要使用匹配
有关更多详细信息,请参阅
可选的,使用<代码> NStReReasXPress < /C> >
< P>您也可以考虑使用<代码> NScord方法>代码>子字符串WiRange:
如果您对正则表达式感到不舒服,不要急于使用它。使用一些有效的方法。Cocoa的正则表达式实现不是最容易开始的。
抓起你的绳子,然后和任何东西比较。
您可以在字符串上循环以同样容易地获得每3个字符
NSString *aString = @"abc";
NSString *thirdCharacterOnly;
if (aString.length >= 3) {
for (NSUInteger i = 2; i < aString.length; i += 3) {
thirdCharacterOnly = [aString substringWithRange:NSMakeRange(2, 1)];
if ([thirdCharacterOnly isEqualToString:@"3"]) {
// Do something.
}
}
} else {
// do something different.
}
NSString*aString=@“abc”;
NSString*仅限第三个字符;
如果(aString.length>=3){
对于(整数i=2;i
如果你想要更多的正则表达式GET。3章会让你加快速度。先学习露比、Python或Perl的正则表达式。它会节省你的大脑。
你也可以考虑使用<代码> NScord方法>代码>子字符串WiRange:
如果您对正则表达式感到不舒服,不要急于使用它。使用一些有效的方法。Cocoa的正则表达式实现不是最容易开始的。
抓起你的绳子,然后和任何东西比较。
您可以在字符串上循环以同样容易地获得每3个字符
NSString *aString = @"abc";
NSString *thirdCharacterOnly;
if (aString.length >= 3) {
for (NSUInteger i = 2; i < aString.length; i += 3) {
thirdCharacterOnly = [aString substringWithRange:NSMakeRange(2, 1)];
if ([thirdCharacterOnly isEqualToString:@"3"]) {
// Do something.
}
}
} else {
// do something different.
}
NSString*aString=@“abc”;
NSString*仅限第三个字符;
如果(aString.length>=3){
对于(整数i=2;i
如果你想了解更多关于正则表达式的内容,请阅读。3章将帮助你提高速度。首先使用Ruby、Python或Perl学习正则表达式。这将节省你的大脑。你不需要在正则表达式末尾使用*$
,它对这个用例没有任何作用。可能没有,但在处理多行inp时可能会有所不同uts.Predicate:SELF-LIKE[c]“^..3.*$”SearchingText:aa3aaa
相同,不起作用。您不需要在该正则表达式末尾使用.*$
,它对此用例没有任何作用。可能没有,但在处理多行输入时可能会有所不同。Predicate:SELF-LIKE[c]“^..3.*$”SearchingText:aa3aaa
相同,不起作用。谓词:SELF-LIKE[c]“^..3”SearchingText:aa3aaa
不起作用@omz注意到,正则表达式需要使用匹配项而不是LIKE。谓词:SELF-LIKE[c]“^..3”SearchingText:aa3aaa
不能像@omz所说的那样工作,你需要使用匹配项而不是正则表达式。很好,它使用的是.3.*
。我也在尝试,但只是使用.3*
如果你只使用.3
作为正则表达式,它将匹配blahblah3blah。确保你按照我的ans锚定它答案是不真实的。.3
将只匹配aa3
而不是aa3a
或aaaaaa3a
。很好,它与.3.*
一起工作。我也尝试过这一点,但仅与.3*
匹配。如果您只使用.3
作为正则表达式,它将匹配blahblah3blah。请确保按照我的答案锚定它。不是真的。.3
将只匹配aa3
而不是aa3a
或aaaaaa3a
。