匹配“hello @c”而不是“hello @cat”的正则表达式

时间:2017-04-23 06:57:14

标签: regex

当尝试解析字符串时,提到的字符串我正在使用此正则表达式:.*@${username}.*其中${username}是参数。

如果${username} = 'c'

然后这变为.*@c.* 所以这会错误地匹配hello @cat

之类的内容

我需要一个匹配整个字符串的正则表达式

@c
hello @c
@c hello
hello @c hello

且不匹配:

@cat
  • 它不一定是一个正则表达式。它可以是多个覆盖所有案例而不会干扰另一个案例。

2 个答案:

答案 0 :(得分:0)

只需确保用户名后面没有用户名:@$username\([^a-z]\|$\)。请注意,根据regexp解析器,您可能需要删除反斜杠。

答案 1 :(得分:0)

这似乎有效。

.*@\bc\b.*

https://regex101.com/r/OYjmvQ/1

我也想知道为什么它不能在我的实际代码中工作(Java)和derp:Java Regex Word Boundaries

必须双重逃脱:

.*@\\bc\\b.*