我有一个包含以下行的文件:
apple
,apple
crab_apple
,crab_apple
我想使用正则表达式通过使用正则表达式来拉出'apple'和',apple'行:
'[^_]apple'
但是,这只输出一行:
,apple
我对这个正则表达式缺少什么,以防止它返回'apple'?
答案 0 :(得分:2)
我对这个正则表达式缺少什么,以防止它返回'apple'?
您错过了lookbehind:
(?<![_])apple
与消费 [^_]
前面的字符"apple"
不同之后,检查它不是下划线,(?<![_])
只需检查 "apple"
前面的字符不是下划线,不消耗它。
答案 1 :(得分:1)
你的正则表达式
'[^_]apple'
匹配字词_
之前不包含符号apple
的字符串。
您可能正在寻找的更多内容如下:
^,?apple
答案 2 :(得分:1)
如果您只是寻找苹果,请尝试获取apple on a word boundary。
\bapple\b
答案 3 :(得分:0)
你说你在apple
之前想要一个字符,并且只有apple
之前没有任何字符(也就是说,它没有)。
获得它的一种方法是:
'[^_]?apple'
含义&#34;零或一长即它&#39; s-not -_&#34;。
答案 4 :(得分:0)
'([^_]|\b)apple'
它正在寻找单词的开头或不是下划线