2016-08-13 51 views
0

我有一个很长的字符串,它包含一些我不想要的信息。例如,它不断地有这样的:ios用图案替换子字符串

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

,我想删除所有子与"<span class=/"phrasedesc/">"开始和结束"</span phrasedesc>",不管之间什么。

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

回答

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

ü可以写在OC PLZ – user2053760

+0

这只有当模式发生onces。如果这种模式有很多发生,我想删除所有这些模式,但这确实奏效。 – user2053760

+0

哥们你做错了什么,我测试过添加多个字符串。这是行得通的。 – Harsh

-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: "") 

的Objective-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......"

+0

我想要的是删除整个子字符串,包括.....一些文本.....部分 – user2053760