Python正则表达式检查以确保某些东西有一个空格,但是

2024-03-29 10:39:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我要做的是确保在某件事之后,以及下一件事之前,都有一个空格,但也可以是单词

例如hello <word> goodbyehello goodbye

当我试图在regex中检查这个时hello\s+.*\s+goodbye

这个代码的问题是,如果在hello和goodbye中间没有一个单词,那么它将查找两个空格,然后将其视为没有看到正确的内容。你知道吗

基本上,我试图确保有一个空间,只有一个空间,如果有或没有一个字之间的问候和再见。你知道吗

编辑:仍然习惯于正则表达式的严格定义。问题还在于有可能出现helloabcdef <word> goodbyehello <word> aksdjhsdflkhgoodbye之类的内容,它们应该显示为false


Tags: 代码false编辑内容hello定义空间单词
1条回答
网友
1楼 · 发布于 2024-03-29 10:39:02

如果只想匹配一个空格,那么为什么要将\s+与量词一起使用呢?将匹配1个或多个空格的。你应该只用\s。你知道吗

至于您的问题,您可以使用这个正则表达式来匹配这些字符串:

hello\s(\S+\s)?goodbye

注意\S+的用法。这样可以确保只有当两个空格之间至少有一个非空白字符时,捕获组才会匹配。使用.将不起作用,因为它匹配任何字符,因此也将匹配空格。而且,如果您使用\S*,那么它还将匹配以下字符串:hello\s\sgoodbye。注意这里有两个空格。你知道吗

相关问题 更多 >