正则表达式模式,匹配该单词中任何位置至少包含一个星号的所有单词。
str = "t*e *pp locall* so my q**st*on is **stinct *ro* t*eir's. *ev***heles* lol ****"
应匹配
t*e
*pp
locall*
因此我的q**st*on
为**stinct
*ro*
t*eir's
。 *ev***heles*
lol ****
答案 0 :(得分:4)
[\w-']*(?:\*+[\w-']*)+
[\w-']*
任意多次匹配任何字词-
或'
(?:\*+[\w-']*)+
匹配以下一次或多次
\*+
匹配*
一次或多次[\w-']*
任意多次匹配任何字词-
或'
let s = `t*e *pp locall* so my q**st*on is **stinct *ro* t*eir's. *ev***heles* lol ****`
let r = /[\w-']*(?:\*+[\w-']*)+/g
while(m = r.exec(s)) {
console.log(m[0])
}

答案 1 :(得分:1)
也许你正在寻找这个?
/[^\s\.,?!]*\*+[^\s\.,?!]*/g
[^\s\.,?!]*
匹配任何字符零次或多次不是空格或标点符号。\*+
匹配*
一次或多次。[^\s\.,?!]*
继续匹配字符,直到遇到空格或标点符号,然后终止匹配。我投入了更多的标点,因为你似乎想要从比赛中省略它:
var str = "t*e *pp locall* so my q**st*on is **stinct *ro* t*eir's. *ev***heles* lol ****"
console.log(str.match(/[^\s\.,?!]*\*[^\s\.,?!]*/g))