문자열에서 반복되는 부분 문자열 제거

Rutger Huijsmans

내 문자열에서 반복되는 부분 문자열을 제거하는 함수를 생각할 수 없습니다. 내 문자열은 다음과 같습니다.

"<bold><bold>Rutger</bold> Roger</bold> rented a <bold>testitem zero dollars</bold> from <bold>Rutger</bold>."

그리고 <bold>다른 것이 뒤 <bold>따르면 두 번째를 제거하고 싶습니다 <bold>. 그 두 번째를 제거 할 때 다음 <bold>첫 번째도 제거하고 싶습니다 </bold>.

따라서 내가 찾고있는 출력은 다음과 같아야합니다.

"<bold>Rutger Roger</bold> rented a <bold>testitem zero dollars</bold> from <bold>Rutger</bold>."

누구든지 Swift (2.2)에서 이것을 달성하는 방법을 알고 있습니까?

MKoosej

태그가 중첩 된 콘텐츠에 1 회 이상 표시되지 않는다는 가정하에 정규식을 사용하여 솔루션을 작성했습니다. 즉, 그 이상이 아닌 이중 태그를 정리합니다. 동일한 코드와 재귀 호출을 사용하여 원하는만큼 중첩 된 반복 태그를 정리할 수 있습니다.

class Cleaner {

    var tags:Array<String> = [];

    init(tags:Array<String>) {
        self.tags = tags;
    }

    func cleanString(html:String) -> String {

        var res = html

        do {

            for tag in tags {

                let start = "<\(tag)>"
                let end = "</\(tag)>"

                let pattern = "\(start)(.*?)\(end)"

                let regex = try NSRegularExpression(pattern: pattern, options: NSRegularExpression.Options.caseInsensitive)

                let matches = regex.matches(in: res, options: [], range: NSRange(location: 0, length: res.utf16.count))

                var diff = 0;
                for match in matches {

                    let outer_range = NSMakeRange(match.rangeAt(0).location - diff, match.rangeAt(0).length)
                    let inner_range = NSMakeRange(match.rangeAt(1).location - diff, match.rangeAt(1).length)
                    let node = (res as NSString).substring(with: outer_range)
                    let content = (res as NSString).substring(with: inner_range)

                    // look for the starting tag in the content of the node
                    if content.range(of: start) != nil {
                        res = (res as NSString).replacingCharacters(in: outer_range, with: content);

                        //for shifting future ranges
                        diff += (node.utf16.count - content.utf16.count)
                    }
                }
            }
        }
        catch {
            print("regex was bad!")
        }

        return res
    }
}

let cleaner = Cleaner(tags: ["bold"]);
let html = "<bold><bold>Rutger</bold> Roger</bold> rented a <bold><bold>testitem</bold> zero dollars</bold> from <bold>Rutger</bold>."

let cleaned = cleaner.cleanString(html: html)
print(cleaned)
//<bold>Rutger Roger</bold> rented a <bold>testitem zero dollars</bold> from <bold>Rutger</bold>.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

문자열 끝에서 부분 문자열을 제거하는 방법

분류에서Dev

Pandas 시리즈에서 반복되는 부분 문자열을 제거하는 방법은 무엇입니까?

분류에서Dev

R에서 중복 부분 문자열 제거

분류에서Dev

문자열에서 반복되는 문자 세트 제거

분류에서Dev

문자열에서 반복되는 인접 문자 제거

분류에서Dev

문자열에서 반복되는 문자 제거

분류에서Dev

문자열에서 반복되는 문자 제거

분류에서Dev

파이썬에서 알 수없는 문자열 부분 제거

분류에서Dev

문자열에서 부분 제거

분류에서Dev

문자열에서 부분 제거

분류에서Dev

특정 수의 문자 뒤에있는 문자열에서 괄호로 묶인 부분 문자열 제거

분류에서Dev

부분 문자열 제거

분류에서Dev

Java에서만 문자열의 특정 부분을 확인하여 문자열 배열의 중복 제거

분류에서Dev

반복되는 문자열 제거

분류에서Dev

문자열 Python에서 여러 부분 문자열 제거

분류에서Dev

C #의 문자열에서 중간 부분 문자열 제거

분류에서Dev

문자열 시작 부분에서 하위 문자열 제거

분류에서Dev

신속한 문자열에서 부분 문자열 제거

분류에서Dev

문자열에서 부분 문자열 제거

분류에서Dev

C ++ 문자열 내에서 반복되는 부분 문자열 찾기

분류에서Dev

C ++에서 문자열에서 부분 문자열을 삭제하는 방법

분류에서Dev

PHP : 배열에서 문자열의 특정 부분을 제거하는 방법

분류에서Dev

열 범위의 문자열에서 원하지 않는 부분 제거

분류에서Dev

파이썬에서 문자열에서 부분 문자열을 제거하는 방법은 무엇입니까?

분류에서Dev

없음을 제공하는 문자열에서 부분 문자열 추출

분류에서Dev

Oracle에서 반복되는 문자열 제거

분류에서Dev

Python에서 특정 문자 뒤의 문자열 부분 제거

분류에서Dev

SQL의 문자열 시작 부분에서 문자 제거

분류에서Dev

BigQuery STRING 필드 내에서 겹치는 부분 문자열 제거

Related 관련 기사

  1. 1

    문자열 끝에서 부분 문자열을 제거하는 방법

  2. 2

    Pandas 시리즈에서 반복되는 부분 문자열을 제거하는 방법은 무엇입니까?

  3. 3

    R에서 중복 부분 문자열 제거

  4. 4

    문자열에서 반복되는 문자 세트 제거

  5. 5

    문자열에서 반복되는 인접 문자 제거

  6. 6

    문자열에서 반복되는 문자 제거

  7. 7

    문자열에서 반복되는 문자 제거

  8. 8

    파이썬에서 알 수없는 문자열 부분 제거

  9. 9

    문자열에서 부분 제거

  10. 10

    문자열에서 부분 제거

  11. 11

    특정 수의 문자 뒤에있는 문자열에서 괄호로 묶인 부분 문자열 제거

  12. 12

    부분 문자열 제거

  13. 13

    Java에서만 문자열의 특정 부분을 확인하여 문자열 배열의 중복 제거

  14. 14

    반복되는 문자열 제거

  15. 15

    문자열 Python에서 여러 부분 문자열 제거

  16. 16

    C #의 문자열에서 중간 부분 문자열 제거

  17. 17

    문자열 시작 부분에서 하위 문자열 제거

  18. 18

    신속한 문자열에서 부분 문자열 제거

  19. 19

    문자열에서 부분 문자열 제거

  20. 20

    C ++ 문자열 내에서 반복되는 부분 문자열 찾기

  21. 21

    C ++에서 문자열에서 부분 문자열을 삭제하는 방법

  22. 22

    PHP : 배열에서 문자열의 특정 부분을 제거하는 방법

  23. 23

    열 범위의 문자열에서 원하지 않는 부분 제거

  24. 24

    파이썬에서 문자열에서 부분 문자열을 제거하는 방법은 무엇입니까?

  25. 25

    없음을 제공하는 문자열에서 부분 문자열 추출

  26. 26

    Oracle에서 반복되는 문자열 제거

  27. 27

    Python에서 특정 문자 뒤의 문자열 부분 제거

  28. 28

    SQL의 문자열 시작 부분에서 문자 제거

  29. 29

    BigQuery STRING 필드 내에서 겹치는 부분 문자열 제거

뜨겁다태그

보관