ClickHouse/docs/tr/sql_reference/functions/string_replace_functions.md
2020-04-15 16:56:49 +03:00

4.4 KiB
Raw Blame History

machine_translated machine_translated_rev toc_priority toc_title
true e8cd92bba3 42 Dizelerde değiştirilmesi için

Dizelerde arama ve değiştirme işlevleri

replaceOne(Samanlık, desen, değiştirme)

Varsa, ilk oluş replacesumun yerini pattern substring içinde haystack ile... replacement dize. Ahiret, pattern ve replacement sabitleri olması gerekir.

replaceAll (Samanlık, desen, değiştirme), değiştirin (Samanlık, desen, değiştirme)

Tüm oluşumları değiştirir pattern substring içinde haystack ile... replacement dize.

replaceRegexpOne(Samanlık, desen, değiştirme)

Kullanarak değiştirme pattern düzenli ifade. Re2 düzenli ifade. Varsa, yalnızca ilk oluşumu değiştirir. Bir desen olarak belirtilebilir replacement. Bu desen değiştirmeleri içerebilir \0-\9. İkame \0 tüm düzenli ifadeyi içerir. İkameler \1-\9 alt desene karşılık gelir numbers.To use the \ bir şablondaki karakter, kullanarak kaçış \. Ayrıca, bir dize literalinin ekstra bir kaçış gerektirdiğini unutmayın.

Örnek 1. Tarihi Amerikan format convertingına dönüştürme:

SELECT DISTINCT
    EventDate,
    replaceRegexpOne(toString(EventDate), '(\\d{4})-(\\d{2})-(\\d{2})', '\\2/\\3/\\1') AS res
FROM test.hits
LIMIT 7
FORMAT TabSeparated
2014-03-17      03/17/2014
2014-03-18      03/18/2014
2014-03-19      03/19/2014
2014-03-20      03/20/2014
2014-03-21      03/21/2014
2014-03-22      03/22/2014
2014-03-23      03/23/2014

Örnek 2. Bir dize on kez kopyalama:

SELECT replaceRegexpOne('Hello, World!', '.*', '\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0') AS res
┌─res────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World! │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

replaceRegexpAll(Samanlık, desen, değiştirme)

Bu aynı şeyi yapar, ancak tüm oluşumların yerini alır. Örnek:

SELECT replaceRegexpAll('Hello, World!', '.', '\\0\\0') AS res
┌─res────────────────────────┐
│ HHeelllloo,,  WWoorrlldd!! │
└────────────────────────────┘

Normal bir ifade boş bir alt dize üzerinde çalıştıysa, bir istisna olarak, değiştirme birden çok kez yapılmaz. Örnek:

SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘

regexpQuoteMeta (s)

İşlev, dizedeki bazı önceden tanımlanmış karakterlerden önce bir ters eğik çizgi ekler. Önceden tanımlanmış karakterler: 0, \, |, (, ), ^, $, ., [, ']', ?, '*,+,{,:,-'. Bu uygulama biraz re2::RE2::QuoteMeta farklıdır. Sıfır bayttan 00 yerine \0 olarak çıkar ve yalnızca gerekli karakterlerden kaçar. Daha fazla bilgi için bağlantıya bakın: RE2

Orijinal makale