正则表达式以匹配单词,除非它们前面有字符
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]+/
使用回溯(但在 Javascript 中不允许):
pattern = "(?:^|(?<![a-zA-Z]))#[a-zA-Z]+"
相关文章:
- 如何使用Javascript在给定的句子中找到大写单词并在其前面添加一个字符
- 如何获得前面有“”的字符;add_”;
- Regex查找前面没有特定字符的字符
- 如何完成此循环?连接前面的两个字符
- 为什么这个正则表达式返回前面的字符
- 如何全局替换不在前面加[字符]的字符
- 正则表达式以匹配单词,除非它们前面有字符
- 当前面的数字或前面字符的组合未知时提取字符串
- 将 n 个字符从字符串前面移到末尾
- 前面有特定字符串时的匹配字符
- 负向后看:匹配一个子字符串's不在一组字符的前面
- Regex匹配前面或后面没有其他字符的精确单词
- 检查字符串前面是否有特定字符
- 在Javascript中,如何在字符串中找到一个字符,并将其前面的所有字符放入变量中
- 光标前面的字符
- Javascript代码检查特殊字符,并在其前面添加双斜杠
- 替换前面或后面没有相同字符的字符
- 前面有两个或多个特殊字符的正则表达式
- RegEx-允许字母,数字,只有特殊字符逗号-但没有前面或后面的逗号
- 匹配前面没有'转义字符的双引号