如何仅从字符串的开头删除点[重复]

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);

【讨论】:

以上是关于如何仅从字符串的开头删除点[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从字符串的开头和结尾删除换行符?

如果字符串以“xx”开头(PHP)[重复]

用于仅从字符串中删除特定特殊字符的正则表达式

从字符串中间删除特定文本(仅从字符串末尾第一次出现)

从字符串中删除点符号[重复]

仅用连字符替换单词之间的空格并删除所有其他空格[重复]