繁体   English   中英

正则表达式匹配单词,除非他们之前有一个字符

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM