PINE LIBRARY
已更新 Strings

█ OVERVIEW
This library provides string manipulation functions to complement the Pine Script™ `str.*()` built-in functions.
█ CONCEPTS
At the time our String Manipulation Framework was published, there was little in the way of built-in functions to manipulate strings. Since then, we have witnessed several meaningful developments on this front by the nimble Pine team. The newly released functions (including the ones in this blog post) have deprecated most of our functions. This library captures the small handful of functions we think are still pertinent. It is worth noting that, thanks to the new string built-ins in Pine Script™, these functions greatly outperform their earlier counterparts, both performance-wise and because they can return values of simple form, which are a necessity in some circumstances, such as when used as arguments to some parameters of request.security().
█ NOTES
`leftOf()` and `rightOf()`
Using the functions in this library is straightforward. The `leftOf()` and `rightOf()` functions extract the part of a string that is to the left or to the right of another string or character. This can be useful to separate the exchange and symbol components of user-entered tickers, for example. The separation is done with the underused str.match(), which can use regular expressions (or regex) to scan a string and separate characters based on a search pattern. The possibilities with regex are virtually endless; they can be used in “find and replace” applications, or to validate phone numbers, emails, passwords, credit card numbers, dates, etc. Note that Pine supports the same regex features as Java.
String operations in Pine Script™
The Pine Script™ runtime is optimized for number crunching. You can thus optimize script performance by limiting operations on strings whenever possible. This includes declaring strings with the var keyword, and containing re-assignments to local if blocks using barstate.islast, for example.
Look first. Then leap.
█ FUNCTIONS
leftOf(str, separator, occurrence)
Extracts the part of the `str` string that is left of the nth `occurrence` of the `separator` string.
Parameters:
str: (series string) Source string.
separator: (series string) Separator string.
occurrence: (series int) Occurrence of the separator string. Optional. The default value is zero (the 1st occurrence).
Returns: (string) The extracted string.
rightOf(str, separator, occurrence)
Extracts the part of the `str` string that is right of the nth `occurrence` of the `separator` string.
Parameters:
str: (series string) Source string.
separator: (series string) Separator string.
occurrence: (series int) Occurrence of the separator string. Optional. The default value is zero (the 1st occurrence).
Returns: (string) The extracted string.
This library provides string manipulation functions to complement the Pine Script™ `str.*()` built-in functions.
█ CONCEPTS
At the time our String Manipulation Framework was published, there was little in the way of built-in functions to manipulate strings. Since then, we have witnessed several meaningful developments on this front by the nimble Pine team. The newly released functions (including the ones in this blog post) have deprecated most of our functions. This library captures the small handful of functions we think are still pertinent. It is worth noting that, thanks to the new string built-ins in Pine Script™, these functions greatly outperform their earlier counterparts, both performance-wise and because they can return values of simple form, which are a necessity in some circumstances, such as when used as arguments to some parameters of request.security().
█ NOTES
`leftOf()` and `rightOf()`
Using the functions in this library is straightforward. The `leftOf()` and `rightOf()` functions extract the part of a string that is to the left or to the right of another string or character. This can be useful to separate the exchange and symbol components of user-entered tickers, for example. The separation is done with the underused str.match(), which can use regular expressions (or regex) to scan a string and separate characters based on a search pattern. The possibilities with regex are virtually endless; they can be used in “find and replace” applications, or to validate phone numbers, emails, passwords, credit card numbers, dates, etc. Note that Pine supports the same regex features as Java.
String operations in Pine Script™
The Pine Script™ runtime is optimized for number crunching. You can thus optimize script performance by limiting operations on strings whenever possible. This includes declaring strings with the var keyword, and containing re-assignments to local if blocks using barstate.islast, for example.
Look first. Then leap.
█ FUNCTIONS
leftOf(str, separator, occurrence)
Extracts the part of the `str` string that is left of the nth `occurrence` of the `separator` string.
Parameters:
str: (series string) Source string.
separator: (series string) Separator string.
occurrence: (series int) Occurrence of the separator string. Optional. The default value is zero (the 1st occurrence).
Returns: (string) The extracted string.
rightOf(str, separator, occurrence)
Extracts the part of the `str` string that is right of the nth `occurrence` of the `separator` string.
Parameters:
str: (series string) Source string.
separator: (series string) Separator string.
occurrence: (series int) Occurrence of the separator string. Optional. The default value is zero (the 1st occurrence).
Returns: (string) The extracted string.
發行說明
v2We have upgraded this library to Pine Script® v6, ensuring compatibility with the latest features and improvements. See the Release notes and v6 migration guide to learn what's new in v6 and how to convert your scripts to this version.
We've also corrected errors in the exported functions' substring matching logic. Previously, if the `separator` argument in a `leftOf()` or `rightOf()` call contained special regex characters, it would directly affect the function's matching behavior, leading to incorrect results. Additionally, the occurrence counting in the regular expression did not always work as intended.
This version prevents these issues with revised regular expressions and logic that match only literal `separator` occurrences and count groups of match sequences from the start of the source string.
Additionally, we've optimized the logic of these functions to call str.match() only when necessary, which helps improve efficiency when evaluating strings that do not change on every bar.
Pine腳本庫
秉持 TradingView 一貫的共享精神,作者將此 Pine 程式碼發佈為開源庫,讓社群中的其他 Pine 程式設計師能夠重複使用。向作者致敬!您可以在私人專案或其他開源發佈中使用此庫,但在公開發佈中重複使用該程式碼需遵守社群規範。
Tools and ideas for all Pine coders: pinecoders.com
Our Pine FAQ & Code: pinecoders.com/faq_and_code/
Pine news broadcasts: t.me/PineCodersSquawkBox or twitter.com/PineCoders
Our Pine FAQ & Code: pinecoders.com/faq_and_code/
Pine news broadcasts: t.me/PineCodersSquawkBox or twitter.com/PineCoders
免責聲明
這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。
Pine腳本庫
秉持 TradingView 一貫的共享精神,作者將此 Pine 程式碼發佈為開源庫,讓社群中的其他 Pine 程式設計師能夠重複使用。向作者致敬!您可以在私人專案或其他開源發佈中使用此庫,但在公開發佈中重複使用該程式碼需遵守社群規範。
Tools and ideas for all Pine coders: pinecoders.com
Our Pine FAQ & Code: pinecoders.com/faq_and_code/
Pine news broadcasts: t.me/PineCodersSquawkBox or twitter.com/PineCoders
Our Pine FAQ & Code: pinecoders.com/faq_and_code/
Pine news broadcasts: t.me/PineCodersSquawkBox or twitter.com/PineCoders
免責聲明
這些資訊和出版物並不意味著也不構成TradingView提供或認可的金融、投資、交易或其他類型的意見或建議。請在使用條款閱讀更多資訊。