1 回答

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
該模式[^\|](.*?)(\|)(.*?)*[^$/|]
至少匹配一個(gè)字符|
,但.
可以匹配任何字符,也可以匹配另一個(gè)字符|
請(qǐng)注意,這部分[^$/|]
表示除$
/
|
您可以開始匹配除 a|
或換行符之外的任何字符。
然后重復(fù)至少 1 次或多次匹配 a,|
后跟除 a 之外的任何字符|
^[^|\r\n]+(?:\|[^|\r\n]+)+$
解釋
^
字符串的開頭[^|\r\n]+
否定字符類,匹配|
除換行符之外的任何字符 1+ 次(?:
非捕獲組\|[^|\r\n]+
匹配|
后跟除 a|
或換行符之外的任何字符 1+ 次)+
關(guān)閉組并重復(fù) 1 次以上以匹配至少一個(gè)管道$
字符串結(jié)尾
const pattern = /^[^|\r\n]+(?:\|[^|\r\n]+)+$/;
[
"word|a phrase|word with number 1|word with symbol?",
"word|another word",
"|word",
"word|",
"word|another|",
"word"
].forEach(s => console.log(`${pattern.test(s)} => ${s}`));
如果不存在換行符,您可以使用:
^[^|]+(?:\|[^|]+)+$
添加回答
舉報(bào)