Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.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_Whitespace_String Matching - Fatal编程技术网

Regex 正则表达式不';不匹配

Regex 正则表达式不';不匹配,regex,whitespace,string-matching,Regex,Whitespace,String Matching,为何使用此正则表达式: [^\s]+ …表示该字符串: “用户的扩展名” 这不完全吻合吗 正则表达式只匹配不包含任何空格的字符串。您的匹配方法似乎将正则表达式应用于整个字符串,因此它失败 [abc]是一个字符类,意思是“要么a,b要么c” [^abc]是该类的反义词,意思是“除a、b或c以外的任何字符”。 \s表示“任何空白字符”。 [^\s](也可以写成\s)表示“任何非空白字符”。 +表示“前面的一个或多个标记。您的正则表达式将仅与一个或多个非空白字符匹配字符串。“用户扩展名”包含匹配

为何使用此正则表达式:

[^\s]+  
…表示该字符串:

“用户的扩展名”


这不完全吻合吗

正则表达式只匹配不包含任何空格的字符串。您的匹配方法似乎将正则表达式应用于整个字符串,因此它失败

[abc]
是一个字符类,意思是“要么
a
b
要么
c

[^abc]
是该类的反义词,意思是“除
a
b
c
以外的任何字符”。
\s
表示“任何空白字符”。
[^\s]
(也可以写成
\s
)表示“任何非空白字符”。

+
表示“前面的一个或多个标记。

您的正则表达式将仅与一个或多个非空白字符匹配字符串。
“用户扩展名”
包含匹配的子字符串,但由于空格字符,它本身不是匹配项。

请显示一些实际代码。
[^\\s]
匹配一行的开头,后跟一个空格字符,1次或多次。唯一的问题是,一行中的字符串的开头不会出现多次。请尝试将
^
移到
[]
@huntermillen:不,
^
表示“否定”“在字符类中。这与Qt有什么关系?实际上,它是完全匹配的。它符合正则表达式所说的。这不是你想要的吗?在Perl中,“用户扩展名”=~/[^\s]+/完全匹配。除了反斜杠被转义外,它将匹配空白。@jmoreno:不,双反斜杠仅用于字符串转义。@TimPietzcker:看看我的答案是如何显示的,我想我必须接受它(并删除我的答案)。