我有一个脚本行:
#type1 this is the text of the note
我尝试过这个bu不适合我锻炼:
^\#([^\s]+)
我看着捕获type
,换句话说,我得到的是哈希符号“#”和下一个空格之间的内容(不包括哈希符号“#”),我要捕获的字符串是字母数字字符串。
答案 0 :(得分:0)
使用Javascript提供的regex功能:
exec_result = /#(\w*)/.exec('#whatever string comes here');
我相信exec_result[1]
应该是您想要的字符串。
exec()
方法的返回值可以在这里找到:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/exec
答案 1 :(得分:0)
您真的很亲密:
/^\#(\w+)\s/
\ w匹配任何字母或数字(也带有下划线)。而且该空间应该在匹配组之外,因为我想您不想捕获它。
答案 2 :(得分:0)
要获得字母数字匹配(将使您获得type1),可以使用字符类并指定要匹配的内容,而不是[^\s]
而不匹配空白字符,例如{{ 1}}。
然后使用否定前瞻断言右边的内容不是非空格字符:
[A-Za-z0-9]
您的比赛在第一个捕获组中。请注意,您不必逃脱^#([A-Za-z0-9]+)(?!\S)
例如,使用不区分大小写的标记\#
/i
如果只想匹配类型,则可以使用:
const regex = /^#([A-Za-z0-9]+)(?!\S)/i;
const str = `#type1 this is the text of the note`;
console.log(str.match(regex)[1]);
^#([a-z]+)[a-z0-9]*(?!\S)
答案 3 :(得分:0)
我知道了。
/^\#([^\s]+)+(.*)$/