如何使用正则表达式删除字符串中间的新行

时间:2018-05-04 12:36:19

标签: ios swift string trim

我试图弄清楚如何用最多两次中断替换多个中断(class Button extends React.Component { constructor(props) { super(props); this.state = { isDown: false }; } toggleClass() { this.setState(prevState => ({ isDown: !prevState.isDown })); } render() { return ( <button className={this.state.isDown ? "btnDown" : ""} onMouseDown={e => this.toggleClass(e)} onMouseUp={e => this.toggleClass(e)} {...this.props} /> ); } } export class Buttons extends React.Component { render() { return ( <div className="btn-wrap"> <Button value="1">1</Button> <Button value="2">2</Button> .... </div> ); } } )。我使用trimmingCharacters(in:)来删除字符串周围的所有空格和新行,但我无法弄清楚如何删除字符串中的空格,或者更确切地说:我怎么能替换2个以上的休息时间呢?最多2次休息?

例如:

如果用户在textView中写入单词之间有空格,则字符串将为:

\n

我想要实现的字符串结果:

"Hello






I like coffee"

2 个答案:

答案 0 :(得分:4)

您可以直接在extension String { func trimString() -> String { return replacingOccurrences(of: "\\n{3,}", with: "\n\n", options: .regularExpression) } } 上执行正则表达式替换:

\n{3,}

std::unique_ptr<std::vector<int>>模式匹配三个或更多换行符。

答案 1 :(得分:0)

我通过使用正则表达式\n{2,500}解决了这个问题,并用"\n\n"替换了全部。

它运作完美!

extension String {
    func trimString() -> String {
        let pattern = "\n{2,500}"
        let regex = try! NSRegularExpression(pattern: pattern, options: .dotMatchesLineSeparators)
        let range = NSMakeRange(0, self.count)
        let trimmedString = regex.stringByReplacingMatches(in: self, options: .reportProgress, range: range, withTemplate: "\n\n")
        return trimmedString
    }
}