Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 匹配“的正则表达式”;你好@c";但不是",;你好@cat";_Regex - Fatal编程技术网

Regex 匹配“的正则表达式”;你好@c";但不是",;你好@cat";

Regex 匹配“的正则表达式”;你好@c";但不是",;你好@cat";,regex,Regex,当试图解析一个字符串时,我使用了这个正则表达式:*@${username}.*其中${username}是一个参数 如果${username}='c' 然后这就变成了*@c.* 因此,这将不正确地匹配类似于hello@cat的内容 我需要一个与整个字符串匹配的正则表达式: @c hello @c @c hello hello @c hello 并且不匹配: @cat 它不必是一个正则表达式。它可以是多个,覆盖所有案例,而不影响其他案例 只需确保用户名后面没有用户名组成部分:@$userna

当试图解析一个字符串时,我使用了这个正则表达式:
*@${username}.*
其中
${username}
是一个参数

如果
${username}='c'

然后这就变成了
*@c.*
因此,这将不正确地匹配类似于
hello@cat
的内容

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

@c
hello @c
@c hello
hello @c hello
并且不匹配:

@cat
  • 它不必是一个正则表达式。它可以是多个,覆盖所有案例,而不影响其他案例

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

这似乎可行

*@\bc\b.*

我还想知道为什么它在我的实际代码(Java)和derp中不起作用:

必须双倍逃脱:

.*@\\bc\\b.*

这似乎有效:
(^ |\s)@c(\s |$)
。可能有很多更好的方法,而不是正则表达式专家。可能重复的@JJJ问题是\b的
@
字符,所以它不一样question@Tibrogargan为什么会有什么不同?@JJJ您链接的答案使用\b(和/或\w)来界定正在搜索的词(一个词),但问题是@不是一个单词字符,所以在它之前或之后都没有边界。这个词不是一个词。