我的大脑过热了。你有没有一个想法,我如何选择**:words to select
**在这些下面的文本与一个正则表达式在javascript?
Begin :word1 word2: free text :word: :words to select :done:
我的正则表达式是:
/\B:([\-+\w]*)$/g
每个术语都由冒号分隔,如:wordexample:
或:multiple words:
,我只希望单词以冒号开头,而不是以:
结尾。
我正在处理一个包含多个单词的textcomplete,并且在选择多个单词时遇到了问题。
2条答案
按热度按时间wwodge7n1#
我想这会起作用:
/:\S[^:]*(?=\s:|$)/g
Regex 101可以比我更好地解释它:https://regex101.com/r/fA2vP9/2
:匹配字符:字面上
\S匹配任何非空格字符[^\r\n\t\f ]
[^:]* 匹配零个或多个不是原义字符的单个字符:
(?=\s:|$)Positive Lookahead -Assert任何白色字符[\r\n\t\f ],后跟以下字符:字符串末尾的位置
g修饰符:全局。所有匹配(第一次匹配时不返回)
将以下字符串与
.match(/:\S[^:]*(?=\s:|$)/g)
一起使用,可以得到以下输出:示例1
示例二
示例三
示例四
brvekthn2#
这是我能得到的最接近的: