Я пытаюсь подавить подстроку в строке между двумя конкретными строками, # ************************************************************ а также # ------------------------------------------------------------ например?
...
# ************************************************************
# Sequel Pro SQL dump
# Version 4541
#
# http://www.sequelpro.com/
# https://github.com/sequelpro/sequelpro
#
# Hôte: gmp2.newtelapps.fr (MySQL 5.5.62-0+deb8u1)
# Base de données: GMP
# Temps de génération: 2019-01-23 16:27:04 +0000
# ************************************************************
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
# Affichage de la table Table_boolean
# ------------------------------------------------------------
...
Другой пример:
Базовая строка: "12345678 <--- текст для удаления ---> azertyui"
Результат: "12345678azertyui"
Я хотел бы создатьфункция как это:
self.removeSubString(inString: Str, fromString:"<---", toString:"--->", includingFromAndToString:YES)
Это может позволить мне стереть точную подстроку, которую я хочу удалить в строке.
Заранее спасибо.
РЕДАКТИРОВАТЬ:
Я положил здесь окончательное решение:
let result = self.removeSubStringIn(mainStr: str, fromStr: "\\# \\*{60}", toStr: "\\# -{60}", includingFromAndTo: true)
func removeSubStringIn(mainStr:String, fromStr:String, toStr:String, includingFromAndTo:Bool) -> String?
{
var pattern = ""
if (includingFromAndTo)
{
pattern = "(?s)(\(fromStr))(.+?)(\(toStr))"
}
else
{
pattern = "(?s)(?<=\(fromStr))(.+?)(?=\(toStr))"
}
var regex = try? NSRegularExpression(pattern: pattern, options: .caseInsensitive)
let result = regex!.stringByReplacingMatches(in: mainStr,
range: NSRange(location: 0, length: mainStr.count),
withTemplate: "")
return result
}