Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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使用记事本++;_Regex_Notepad++ - Fatal编程技术网

Regex使用记事本++;

Regex使用记事本++;,regex,notepad++,Regex,Notepad++,我希望能够跳转到在引用的CSV文件中不包含6个引号的行,因为这是识别断行的好方法 我认为将正则表达式与Notepad++的find功能结合使用是一种明智的方法,但我不确定如何提取行 6引号(“)表示一个完整的行,所以我想跳到任何不包含6的行 这里是一些示例数据,在这个示例中,我想跳到第四行 "sam","mark","dave" "sam","mark","dave" "sam","mark","dave" "sam","mark"," dave" "sam","mark","dave" "sa

我希望能够跳转到在引用的CSV文件中不包含6个引号的行,因为这是识别断行的好方法

我认为将正则表达式与Notepad++的find功能结合使用是一种明智的方法,但我不确定如何提取行

6引号(“)表示一个完整的行,所以我想跳到任何不包含6的行

这里是一些示例数据,在这个示例中,我想跳到第四行

"sam","mark","dave"
"sam","mark","dave"
"sam","mark","dave"
"sam","mark","
dave"
"sam","mark","dave"
"sam","mark","dave"

这可以帮助您找到正确的行

^(.*?"){6}[^"]$
然后,您可以使用
search->bookmarks->inverse bookmarks

编辑

相反,此模式将只匹配所需的线条

(?!("[^"\r\n]*){6})^.+?$
它使用否定的lookahead来告诉搜索引擎避免使用正好有6个
的行,并保留其他行

如果有可能有超过6个引号(这也是一个问题),请使用以下内容

(?!^("[^"\r\n]*){6}$)^.+?$
编辑

  • (?!
    这是一个负前瞻,它告诉“匹配不包含以下文本的字符串(或行)”
  • (^“
    :不应匹配的文本以行开头的
    开头(
    ^

  • [^”\r\n]*
    :之后包含0个或多个(
    *
    )元素,这些元素不是双引号或换行符(如果
    ^
    是方括号中的第一个字符,则表示“不”在括号中查找字符)

  • ){6}
    :重复6次

  • $)
    :在行尾结束(以及负前瞻结束)

  • ^.+?$
    :如果条件正常,则匹配整行


要查找引号出现在0到5次之间的行,请使用此正则表达式

^([^"\n]*"){0,5}$
说明:

  • ^
    -从一行开始
  • ([^\n“]*”
    -查找包含除双引号或新行(
    [^”\n]
    )以外的任何字符的组,直到出现双引号(
    *”
  • {0,5}
    -查找包含0到5次组出现次数的行
  • $
    -直到行尾
要同时匹配超过6个
的行,可以使用此选项

^(([^"\n]*"){0,5}|([^"\n]*"){7,})$
  • |
    它放入两个或两个正则表达式(5个或更少或7个或更多)
  • {7,}
    -查找包含组的7个或更多实例的行

这为我找到了问题行,解释得非常好-非常感谢!是否可以对其进行修改以同时查找包含6个以上引号的行?谢谢Gabber,第一个示例对我不起作用,但第二个示例非常有效,您是否有机会解释每个部分的作用?谢谢您的解释:)