正则表达式:以 space 开头或在行首的非字字符
Regex: non-word-char preceded by space or at the beginning of a line
我正在尝试匹配前面没有任何内容或空格的 @
,如下例所示:
@one
@two
who@three
/@four
我的方法是 (^|\s)@
,但这会捕获 one two three four
。 \s@
仅捕获 two
。如何获得 one two
,而不获得 three four
?
如果相关,所有 @
后跟一个字母。
^\s*@
怎么样?也就是说,行首后跟零个或多个空格,然后是@。 (注意,不同的语言有不同的正则表达式)
这是一种方式:
/^ *@(.+)/
#在 @
之前允许零个或多个空格然后开始匹配所有内容直到换行符。
如果你可以使用 lookbehind,这应该可以工作(本机不支持 javascript):
(?<=\s|^)@
我正在尝试匹配前面没有任何内容或空格的 @
,如下例所示:
@one
@two
who@three
/@four
我的方法是 (^|\s)@
,但这会捕获 one two three four
。 \s@
仅捕获 two
。如何获得 one two
,而不获得 three four
?
如果相关,所有 @
后跟一个字母。
^\s*@
怎么样?也就是说,行首后跟零个或多个空格,然后是@。 (注意,不同的语言有不同的正则表达式)
这是一种方式:
/^ *@(.+)/
#在 @
之前允许零个或多个空格然后开始匹配所有内容直到换行符。
如果你可以使用 lookbehind,这应该可以工作(本机不支持 javascript):
(?<=\s|^)@