如何在单词/行的中间找到一个字符

时间:2016-05-29 10:55:05

标签: regex sublimetext

我正在寻找@字符,字符串如下:

@test@example
hello@there
myemail@gmail.com

我想仅匹配@,如果它不在行的开头或结尾,即与此示例中的第一个@不匹配。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

如果您使用的语言支持lookaheadlookbehind,那么您可以使用

(?<=.)@(?=.)

正则表达式细分

(?<=.) #Assure that there is at least one character present before @
@ #Match @
(?=.) #Assure that there is at least one character present after @

(?<!^)@(?!$)

正则表达式细分

(?<!^) #Assure that @ do not follows starting of string
@ #Match @
(?!$) #Assure that @ is not followed by end of string

答案 1 :(得分:1)

我认为你可以简单地使用word boundaries

\b@\b

如果左边有一个单词,右边有一个单词,则匹配@

See demo at regex101

答案 2 :(得分:0)

我不确定您是否尝试匹配整条线路或只是@,但请尝试以下方法:

\b[@]