【问题标题】:ios Replace subStrings with a patternios 用模式替换子字符串
【发布时间】:2016-08-13 06:46:52
【问题描述】:

我有一个很长的字符串,其中包含一些我不想要的信息。例如,它经常有这样的东西:

"<span class=/"phrasedesc/">....some text......</span phrasedesc>",

我想删除所有以"<span class=/"phrasedesc/">" 开头并以"</span phrasedesc>" 结尾的子字符串,无论它们之间是什么。

任何人都可以帮助我吗?谢谢。

【问题讨论】:

    标签: ios objective-c regex substring


    【解决方案1】:

    试试这个,它对我有用。 :)

    斯威夫特:

    let re = try! NSRegularExpression(pattern: "(.*)(《span class=\"phrasedesc\"》.*《\\/span phrasedesc》)(.*)", options: .AnchorsMatchLines)
    
    let stringToMatch = "adfasdfasdf《span class=\"phrasedesc\"》ajshdfljkahsdkjf  《/span phrasedesc》asdfasdfasdfasdf"
    
    let matches = re.matchesInString(stringToMatch, options: .WithTransparentBounds , range: NSRange(location: 0, length: stringToMatch.characters.count))
    
    re.stringByReplacingMatchesInString(stringToMatch, options: .ReportCompletion, range: NSMakeRange(0, stringToMatch.characters.count), withTemplate: "$1$3")
    

    目标 - C:

        NSString *stringToBeTrimmed = @"adfasdfasdf《span class=\"phrasedesc\"》ajshdfljkahsdkjf  《/span phrasedesc》asdfasdfasdfasdf";
    
        NSString *pattern = @"(.*)(《span class=\"phrasedesc\"》.*《\\/span phrasedesc》)(.*)";
    
        NSRegularExpression *expression = [[NSRegularExpression alloc] initWithPattern:pattern options:NSRegularExpressionAnchorsMatchLines error:nil];
    
        NSString * yourResultingString =  [expression stringByReplacingMatchesInString:stringToBeTrimmed options:NSMatchingReportCompletion range:NSMakeRange(0, stringToBeTrimmed.length) withTemplate:@"$1$3"];
    

    【讨论】:

    • 你能用OC写吗?
    • 这仅在模式出现一次时才有效。如果这种模式出现很多,我想删除所有这些,但这确实有效。
    • 老兄,你做错了什么,我已经测试过添加多个字符串。这是有效的。
    【解决方案2】:

    考虑使用stringByReplacingOccurrencesOfString

    斯威夫特:

    let originalString = "<span class=\"phrasedesc\">....some text......</span phrasedesc>"
    let newString = originalString.stringByReplacingOccurrencesOfString("<span class=\"phrasedesc\">", withString: "")
    let newString = newString.stringByReplacingOccurrencesOfString("</span phrasedesc>", withString: "")
    

    目标-C:

    NSString *originalString = @"<span class=\"phrasedesc\">....some text......</span phrasedesc>";
    newString = [originalString stringByReplacingOccurrencesOfString:@"<span class=\"phrasedesc\">" withString:@""];
    newString = [newString stringByReplacingOccurrencesOfString:@"</span phrasedesc>" withString:@""];
    

    结果将是newString == "....some text......"

    【讨论】:

    • 我想要的是删除整个子字符串,包括.....一些文本.....部分
    猜你喜欢
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2015-01-21
    • 2017-03-23
    • 2023-02-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-06
    相关资源
    最近更新 更多