假設我有以下模式:
| | | | | |
| | | | | |
| | | | | |
我對regex可以匹配第二個和第三個|字符之間的任何內容的運算式感興趣,如下所示。

我可以使用帶有風味的以下模式^\|\s \|\K\s (?=\|)(regex此處為演示)來做到這一點。PCRE
但是,我的要求是找到ECMAScript風味支持的模式。在這種情況下,使用匹配重置(即\K)不起作用。你對如何獲得類似的東西有什么想法ECMAScript嗎?
uj5u.com熱心網友回復:
如評論中所示,通過將字串拆分為|.
// The string with 'a', 'b', and 'c' added for clarity.
const string = "| | a | | | |\n| | b | | | |\n| | c | | | |";
// Print the string.
console.log(string);
// Split and print the regions between the 2nd and 3rd `|`.
string.split('\n').forEach(line => {
console.log(line.split('|', 3)[2])
});
uj5u.com熱心網友回復:
雖然拆分確實更容易,但我仍然想看看我是否可以使用正則運算式來做到這一點。您可以使用前瞻來匹配行首的模式,并在前瞻中捕獲您在捕獲組中查找的內容。
示例:https ://regex101.com/r/v0GnAN/1
(?=^\|[^|]*\|([^|]*?)\|)
這是一個前瞻組,它在兩個|字符之間查找任何內容,然后在捕獲組中匹配相同的字符。這與方法略有不同\K,因為您的結果現在位于第 1 組而不是第 0 組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/451732.html
標籤:javascript 细绳 分裂
