搜索不在一行开头的单词

时间:2014-12-23 21:56:51

标签: regex

我只知道如何从一行的开头开始。但我想排除开头。 更具体。

我想搜索单词import。但我不想要这样的事情:

import java.util.*;

正如预期的那样,这不起作用:^^用于排除行开头。

同样在角色类^中有不同的含义,所以没有运气。

那么什么是好方法?

3 个答案:

答案 0 :(得分:2)

@AndyLester我没有足够的回复来评论您的答案,但是只要在同一个字符串中再次找到导入,它就允许字符串以“import”开头。使用。+允许除换行之外的任何字符首先出现...包括char序列“import”。所以取决于OP想要确定它是“特征”还是“bug”... @ clankill3r优先考虑您的问题1)不以import开头或2)在字符串中的其他地方包含导入除了在开始

我认为您应该使用的是否定前瞻 - 解释here

要检查字符串不是以“import”开头,请使用正则表达式:

^(?!import)

Regular expression visualization

Debuggex Demo

要检查字符串是否以“import”开头但包含“import”:

   ^(?!import).*(import).*$

Regular expression visualization

Debuggex Demo

答案 1 :(得分:2)

这说“在行的开头找我导入”。

^import

所以你想要的是任何带有“导入”的行,但前面还有别的东西,对吗?

^.+import

答案 2 :(得分:0)

(?!^)\bimport\b

试试这个。这不会找到开头的import。参见演示。

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