Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 - Fatal编程技术网

Regex 正则表达式-匹配任何语言的所有字符和除

Regex 正则表达式-匹配任何语言的所有字符和除,regex,Regex,我浪费了好几个小时才弄明白这一点: ^[\p{L}\p{P}\d\n\t\r][^<>"'*\\\\\/]*$ ^[\p{L}\p{p}\d\n\t\r][^'*.]*$ 如果列表中的一个字符出现[^“'*\\\/],并且除了其中一个被禁止的符号作为字符串中的第一个符号外,几乎工作正常,则该操作将失败。。。我想不出这个。我尝试了几种组合,但都没有成功。您可以对整个正则表达式匹配使用否定字符类,并在开始位置之后使用前瞻来断言所选字符集的存在,即[\p{L}\p{p}\d\

我浪费了好几个小时才弄明白这一点:

^[\p{L}\p{P}\d\n\t\r][^<>"'*\\\\\/]*$
^[\p{L}\p{p}\d\n\t\r][^'*.]*$

如果列表中的一个字符出现[^“'*\\\/],并且除了其中一个被禁止的符号作为字符串中的第一个符号外,几乎工作正常,则该操作将失败。。。我想不出这个。我尝试了几种组合,但都没有成功。

您可以对整个正则表达式匹配使用否定字符类,并在开始位置之后使用前瞻来断言所选字符集的存在,即
[\p{L}\p{p}\d\n\t\r]

^(?=[\p{L}\p{p}\d\n\t\r])[^'*.]+$

正则表达式详细信息:

  • ^
    :开始
  • (?=[\p{L}\p{p}\d\n\t\r])
    :在开始时先行断言给定字符的存在
  • [^“*\\/]+
    :匹配给定字符类中未列出的任何字符的1+
  • $
    :结束

  • 试试<尝试:尝试:<<<<<<<<<<=
    ^(?=[\p{L}\p{p}\d\n\t\r])[^'*.]+$
    。为什么说您的模式不起作用?它只匹配字母/标点符号/数字/CR/LF/TAB,然后匹配除禁止字符以外的任何字符。空字符串不匹配。