ClickHouse/docs/fa/sql_reference/functions/string_replace_functions.md

96 lines
5.0 KiB
Markdown
Raw Normal View History

2020-04-04 09:15:31 +00:00
---
machine_translated: true
machine_translated_rev: d734a8e46ddd7465886ba4133bff743c55190626
toc_priority: 42
toc_title: "\u0628\u0631\u0627\u06CC \u062C\u0627\u06CC\u06AF\u0632\u06CC\u0646\u06CC\
\ \u062F\u0631 \u0631\u0634\u062A\u0647\u0647\u0627"
---
# توابع برای جستجو و جایگزینی در رشته ها {#functions-for-searching-and-replacing-in-strings}
## جایگزینی جایگزین) {#replaceonehaystack-pattern-replacement}
جایگزین وقوع اول, در صورت وجود, از pattern زیر رشته در haystack با replacement زیر رشته.
از این پس, pattern و replacement حتما ثابته
## replaceAll(haystack, الگوی جایگزینی) جایگزین(haystack, الگوی جایگزینی) {#replaceallhaystack-pattern-replacement-replacehaystack-pattern-replacement}
جایگزین تمام اتفاقات pattern زیر رشته در haystack با replacement زیر رشته.
## جایگزین کردن الگوی جایگزین) {#replaceregexponehaystack-pattern-replacement}
جایگزینی با استفاده از pattern عبارت منظم. دوباره2 عبارت منظم.
جایگزین تنها وقوع اول, در صورت وجود.
یک الگو را می توان به عنوان replacement. این الگو می تواند شامل تعویض `\0-\9`.
جایگزینی `\0` شامل کل عبارت منظم. درحال جایگزینی `\1-\9` مربوط به زیرخط numbers.To استفاده از `\` شخصیت در قالب, فرار با استفاده از `\`.
همچنین در نظر داشته باشید که یک رشته تحت اللفظی نیاز به فرار اضافی نگه دارید.
مثال 1. تبدیل تاریخ به فرمت امریکایی:
``` sql
SELECT DISTINCT
EventDate,
replaceRegexpOne(toString(EventDate), '(\\d{4})-(\\d{2})-(\\d{2})', '\\2/\\3/\\1') AS res
FROM test.hits
LIMIT 7
FORMAT TabSeparated
```
``` text
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
```
مثال 2. کپی کردن یک رشته ده بار:
``` sql
SELECT replaceRegexpOne('Hello, World!', '.*', '\\0\\0\\0\\0\\0\\0\\0\\0\\0\\0') AS res
```
``` text
┌─res────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World!Hello, World! │
└────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
```
## جایگزین کردن الگوی جایگزین) {#replaceregexpallhaystack-pattern-replacement}
این کار همان چیزی, اما جایگزین همه وقوع. مثال:
``` sql
SELECT replaceRegexpAll('Hello, World!', '.', '\\0\\0') AS res
```
``` text
┌─res────────────────────────┐
│ HHeelllloo,, WWoorrlldd!! │
└────────────────────────────┘
```
به عنوان یک استثنا, اگر یک عبارت منظم در زیر رشته خالی کار می کرد, جایگزینی بیش از یک بار ساخته شده است.
مثال:
``` sql
SELECT replaceRegexpAll('Hello, World!', '^', 'here: ') AS res
```
``` text
┌─res─────────────────┐
│ here: Hello, World! │
└─────────────────────┘
```
## سرویس پرداخت درونبرنامهای پلی) {#regexpquotemetas}
تابع می افزاید: یک بک اسلش قبل از برخی از شخصیت های از پیش تعریف شده در رشته.
نویسههای از پیش تعریفشده: 0, \\, \|, (, ), ^, $, ., \[, '\]', ?, '\*,+,{,:,-'.
این اجرای کمی از دوباره متفاوت2::پاسخ2:: نقل قول. این فرار صفر بایت به عنوان \\ 0 بجای 00 و فرار شخصیت تنها مورد نیاز.
برای کسب اطلاعات بیشتر به لینک مراجعه کنید: [RE2](https://github.com/google/re2/blob/master/re2/re2.cc#L473)
[مقاله اصلی](https://clickhouse.tech/docs/en/query_language/functions/string_replace_functions/) <!--hide-->