如何使用正则表达式提取以下标记

How could I use regular expressions to extract the following markup?

本文关键字:下标 提取 何使用 正则表达式      更新时间:2023-09-26

例如,假设#表示一个特殊单词,如下所示

我今天 #lovely 去了 #zoo。 我们度过了一段 #wonderful 时光。使用正则表达式是否可以提取类似的东西

#lovely#zoo#wonderful

使用 string.match

var str = "I took a #lovely trip to the #zoo today. We had a #wonderful time"
str.match(/#'w+/g); // #lovely,#zoo,#wonderful 

可能需要根据您的需要调整正则表达式以包含数字和符号。

/#['w'd]+/g字母和数字,/#'S+/g任何非空格的内容。

编辑:我要补充一点,最后的g意味着它将找到所有匹配项,而不仅仅是第一个匹配项。

有正则表达式答案。然后,有split答案。以下作品:

var s = 'I took a #lovely trip to the #zoo today. We had a #wonderful time.'
var tags = s.split( '#' ).map( function ( str ) {
    return str.split( ' ' )[ 0 ]
} )
// Now, tags[0] is not good, so let's splice it
tags.splice( 0, 1 )
console.log( tags ) // ['lovely', 'zoo', 'wonderful']

所以,是的,它比正则表达式解决方案更详细一些。不过我觉得它更优雅。

PS:你猜对了,我不喜欢正则表达式!