[英]Regex to match words unless they have a character before them
我有这个正则表达式检测主题标签。 它不应该与之前的字母匹配,所以我们在正则表达式的开头有一个空格字符:
/( #[a-zA-Z_]+)/gm
问题是它不再匹配句子开头的单词。 我如何修改这个正则表达式,以便它不是与空格匹配,它只是不匹配它们之前的字母。
谢谢!
在开头使用 \\b
表示单词边界 。 \\b
不起作用,因为#
不是单词启动器。
只需检查字符串的开头或之前的空格: (?:^|\\s)(\\#[a-zA-Z_]+)
另外,请确保转义#
,因此不会将其解释为注释。
没有外观 :
pattern = /(?:^|[^a-zA-Z])#[a-zA-Z]+/
使用lookbehind (但在Javascript中不允许):
pattern = "(?:^|(?<![a-zA-Z]))#[a-zA-Z]+"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.