ios用图案替换subStrings

时间:2016-08-13 06:46:52

标签: ios objective-c regex substring

我有一个非常长的字符串,它包含一些我不想要的信息。例如,它经常有类似的东西:

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

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

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

2 个答案:

答案 0 :(得分:1)

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

(SWIFT):

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"];

答案 1 :(得分:-1)

考虑使用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......"