如何匹配没有空格的任何字符,并且没有数组有用的东西

时间:2015-08-04 13:59:12

标签: php regex optimization preg-match-all regex-negation

如何在没有空格的情况下搜索所有字符并优化我的脚本速度,不要将LTEXT,PUSHBUTTON等添加到数组中。

我的模式:

$pattern = "/^(?!FONT)[^\"]*\"\\K(?!\\s+\")([^\"\\n]+)/m";

更具体一点:搜索没有字符的字符必须在这个代码处:“(。+)”

输入:

INPUT

输出

1) FIND: %s: Plik nie został znaleziony\n
2) Some text
3)  Some text 
4) Lautus Theme
5) Plik ten może być używany przez system operacyjny lub przez\n\
    inną aplikację. Modyfikacja tego pliku może spowodować uszkodzenie twojego\n\
    systemu lub uczynić go mniej funkcjonalnym.\n\n\
    Czy na pewno chcesz otworzyć ten plik?
6) Tak
7) FIND: Wyświetla wszystkie linie danego pliku, zawierające szukany ciąg znaków.\n\n\
  FIND [ /C ] [ /I ] [ /N ] [ /V ] ""ciąg znaków"" [ plik... ]\n\
    /I  Ignoruje wielkość liter
8) FIND: %s: Plik nie został znaleziony\n

1 个答案:

答案 0 :(得分:1)

试试这个正则表达式:

^(?!FONT|2000|\s*\*)[^"\n]*"\K(?!\s*(?:"|\n))([^"]+)

Regex live here.

解释

^(?!FONT|2000|\s*\*) #the line cannot start with: "FONT", "2000" or a comment [^"\n]*" #should or not contain keys till '"' or '\n' characters \K #clear previous match to start matching now (?!\s*(?:"|\n)) #the match cannot be empty or only by spaces ([^"]+) #the match must end in a quote '"'

希望它有所帮助。