获取所有内容,除非以\ t开头(缩进)

时间:2018-12-29 23:11:54

标签: javascript regex

我想知道是否有一种方法可以匹配文本中的所有内容,除非以\ t开头(缩进字符)。我目前正在尝试使用文字/[^\t]+\t/gm来实现这一点,但是它不能正常工作,因为您可以看到here

RegExr由gskinner.com创建,并由Media Temple自豪地托管。

编辑表达式和文本以查看匹配项。将比赛或表达式移至详细信息。支持RegEx的PCRE和Javascript版本。

侧栏包括备忘单,完整的参考和帮助。您还可以保存并与社区共享,并在“我的模式”中查看您创建或收藏的模式。

Explore results with the Tools below. Replace & List output custom results. Details lists capture groups. Explain describes your expression in plain English.
    something
    something2

所有东西都被匹配。理想的结果是停止使用“英语”一词。

2 个答案:

答案 0 :(得分:0)

您当前在这里有两个匹配项-一个匹配项,包含文本的个,并在something之前的制表符处停止。然后,您有一个 second 匹配项,在下一行包含something和以下制表符。

由于听起来好像您实际上不想匹配制表符,所以不要匹配\t-您可以使用\S来确保最后匹配的字符是非空格字符。另外,要确保匹配从行的开头开始,请使用^进行锚定(以使\t之后的文本不匹配):

^[^\t]+\S

答案 1 :(得分:0)

从您的示例中可以理解,您要匹配所有非以#define CURL_STATICLIB #include <stdio.h> #include <curl/curl.h> #include <curl/types.h> #include <curl/easy.h> #include <string> size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) { size_t written; written = fwrite(ptr, size, nmemb, stream); return written; } int main(void) { CURL *curl; FILE *fp; CURLcode res; char *url = "http://localhost/aaa.txt"; char outfilename[FILENAME_MAX] = "C:\\bbb.txt"; curl = curl_easy_init(); if (curl) { fp = fopen(outfilename,"wb"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp); res = curl_easy_perform(curl); curl_easy_cleanup(curl); fclose(fp); } return 0; } 字符开头的字符串。

您可以使用此

\t
  • ^[^\t\n][\w\W]*?$ -字符串的开头。
  • ^-断言不匹配的字符串,以tab或空白开头。
  • [^\t\n]-匹配任何零个或多个时间(惰性模式)。
  • [\w\W]*?-字符串结尾。

Demo

示例代码

$