如何仅从字符串的开头删除点[重复]
Posted
技术标签:
【中文标题】如何仅从字符串的开头删除点[重复]【英文标题】:How to remove dots only from starting of string [duplicate] 【发布时间】:2017-11-30 12:01:59 【问题描述】:我的字符串文本是 Like -
1) .....bla ..bla...
2)...bla.. bla…bla.
3).bla.. bla…bla.
点不是静态的。我只想从开始删除点。不是所有的点
我试过了
NSString *newString = [myString stringByReplacingOccurrencesOfString:@"." withString:@""];
但这是删除所有点。
【问题讨论】:
【参考方案1】:试试这个。
NSString* regex = @"^\\.*";
NSString* input = @"....abc..z";
NSString* output = [input stringByReplacingOccurrencesOfString:regex withString:@"" options:NSRegularExpressionSearch range: [input rangeOfString:input]];
【讨论】:
NSString* 正则表达式 = @"^\\*"; @Tailor 这应该是这样的:NSString* regex = @"^\\\\*";
@MarekR 是正确的。我的错误谢谢。
NSString* regex = @"^\\\\*";
这个正则表达式是正确的。请分享输入字符串。【参考方案2】:
var test = "...abc";
while test.hasPrefix(".")
test.remove(at: test.startIndex)
//test variable will have dots removed at the start.
试试这个。
【讨论】:
更优雅,输入更少的东西【参考方案3】:试试这个:
NSString *str = @"...Videt...IDL";
__block NSInteger loc = 0;
[str enumerateSubstringsInRange:NSMakeRange(0, str.length) options:NSStringEnumerationByWords usingBlock:^(NSString * _Nullable substring, NSRange substringRange, NSRange enclosingRange, BOOL * _Nonnull stop)
loc = substringRange.location;
*stop = YES;
];
NSString *convStr = [str substringFromIndex:loc];
NSLog(@"%@", convStr);
【讨论】:
【参考方案4】:NSString *str = @"....bla .... bla..... bla";
NSCharacterSet *charSet = [NSCharacterSet letterCharacterSet];
int letterNO = 0;
for (int i =0; i<str.length; i++)
NSString *letter = [NSString stringWithFormat:@"%c",[str characterAtIndex:i]];
if ([letter rangeOfCharacterFromSet:charSet].location != NSNotFound)
letterNO = i;
break;
NSString * newString = [str substringFromIndex:letterNO];
NSLog(@"newString %@",newString);
【讨论】:
以上是关于如何仅从字符串的开头删除点[重复]的主要内容,如果未能解决你的问题,请参考以下文章