我是正则表达式的新手 . 我试图在一个不包含换行符的字符串中匹配任何以'#'开头的单词(内容已经在换行符中分割) .
示例(不工作):
var string = "#iPhone should be able to compl#te and #delete items"
var matches = string.match(/(?=[\s*#])\w+/g)
// Want matches to contain [ 'iPhone', 'delete' ]
我试图匹配'#'的任何实例,并在它之后 grab 它,只要它后面至少有一个字母,数字或符号 . 空格或换行符应该结束匹配 . '#'应该以字符串开头或以空格开头 .
这个PHP解决方案看起来不错,但它使用了一个向后看的类型的功能,我不知道JS正则表达式有:regexp keep/match any word that starts with a certain character
3 回答
检查 this demo .
试试这个:
你实际上也需要匹配哈希 . 现在,您正在寻找跟随位置的单词字符,该位置后面紧跟着几个不是单词字符的字符之一 . 由于显而易见的原因,这失败了试试这个:
当然,前瞻现在是多余的,所以你不妨删除它:
这将返回所需的:
[ 'iPhone', 'delete' ]
这是一个示范:http://jsfiddle.net/w3cCU/1/