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,然后匹配除禁止字符以外的任何字符。空字符串不匹配。