Regex 正则表达式检测双空间

Regex 正则表达式检测双空间,regex,double,spaces,Regex,Double,Spaces,我试图得到一个正则表达式,它可以检测字符串中是否有双空格。但如果它确实检测到双空格,它将返回为false。因此,本质上,字符串中的任何其他内容都是有效的,除了并排的两个空格。在下面的示例中,下划线(_)是空格 “Hello_World”==>有效 “你好世界”==>无效 “你好世界”==>无效 “1_2_3_4_5”==>有效 “1_2_3_4_5”==>无效 这是我现在的正则表达式 /^([^/s/s]*)$/不要关注两个空格不是什么,而是对它是什么进行负面展望: 或者如果第一个和最后一个必须

我试图得到一个正则表达式,它可以检测字符串中是否有双空格。但如果它确实检测到双空格,它将返回为false。因此,本质上,字符串中的任何其他内容都是有效的,除了并排的两个空格。在下面的示例中,下划线(_)是空格

“Hello_World”==>有效

“你好世界”==>无效

“你好世界”==>无效

“1_2_3_4_5”==>有效

“1_2_3_4_5”==>无效

这是我现在的正则表达式


/^([^/s/s]*)$/

不要关注两个空格不是什么,而是对它是什么进行负面展望:

或者如果第一个和最后一个必须是非空格(未说明):

它还允许1个非空格作为整个输入


使这项工作有效的主要因素是这个表达式
^(?!*)
,它是一个负的前瞻
(?!*)
锚定到
^
输入的开头。它断言,在不使用输入的情况下,当前点后面的文本与给定表达式不匹配,在本例中是
“*”
(为清晰起见添加了引号),即“任意两个空格”。换言之,“在此之后的任何点上都不会出现两个空格”


第二个选项可以写为
^\S(?).*.\S$
——与第一个选项相同,但两端都有
\S
,但两端需要不同的字符,因为
\S
消耗输入,因此它不会匹配单个字母,例如
“X”
。我将除第一个字符外的所有字符都设置为可选字符,它允许单个字符通过(根据您的要求),同时保留两个空格的防止功能。

与其关注两个空格没有的内容,不如对其内容进行负面展望:

或者如果第一个和最后一个必须是非空格(未说明):

它还允许1个非空格作为整个输入


使这项工作有效的主要因素是这个表达式
^(?!*)
,它是一个负的前瞻
(?!*)
锚定到
^
输入的开头。它断言,在不使用输入的情况下,当前点后面的文本与给定表达式不匹配,在本例中是
“*”
(为清晰起见添加了引号),即“任意两个空格”。换言之,“在此之后的任何点上都不会出现两个空格”


第二个选项可以写为
^\S(?).*.\S$
——与第一个选项相同,但两端都有
\S
,但两端需要不同的字符,因为
\S
消耗输入,因此它不会匹配单个字母,例如
“X”
。我将除第一个字符以外的所有字符都设置为可选字符,它允许单个字符通过(根据您的要求),同时保留两个空格的防止功能。

您可以使用类似的功能

^(\S\s{0,1})*\S$

你可以用这样的东西

^(\S\s{0,1})*\S$

你的正则表达式在哪里?欢迎使用堆栈溢出。这不是一个code/SQL/regex编写服务,在这里,您发布了一个需求列表和选择的语言,然后一个代码猴子为您编写代码。我们非常乐意提供帮助,但我们希望您首先自己努力解决问题。一旦你这样做了,你可以解释你的问题,包括你工作的相关部分,并提出一个具体的问题,我们会尽力帮助你。祝你好运。很抱歉,
/^([^/s/s]*)$/
不是有效的正则表达式。至少它是相当无意义的,它匹配的字符串包含0+个字符,而不是
/
s
。你对这个模式的意思是什么?@Wiktor Stribiżew我正在尝试检测字符串中是否有两个相同的字符并排出现。我知道
/^([^a]*)$/
将检测字母“a”是否存在,但我想检测字符串中是否存在两个空格。然后只需使用
if(!/\s{2}/.test(s)){/*CORRECT*/}
。或者类似于
if(s.Contains(“”){/*bad*/}
(Contains中的两个空格)的正则表达式在哪里?欢迎使用堆栈溢出。这不是一个code/SQL/regex编写服务,在这里,您发布了一个需求列表和选择的语言,然后一个代码猴子为您编写代码。我们非常乐意提供帮助,但我们希望您首先自己努力解决问题。一旦你这样做了,你可以解释你的问题,包括你工作的相关部分,并提出一个具体的问题,我们会尽力帮助你。祝你好运。很抱歉,
/^([^/s/s]*)$/
不是有效的正则表达式。至少它是相当无意义的,它匹配的字符串包含0+个字符,而不是
/
s
。你对这个模式的意思是什么?@Wiktor Stribiżew我正在尝试检测字符串中是否有两个相同的字符并排出现。我知道
/^([^a]*)$/
将检测字母“a”是否存在,但我想检测字符串中是否存在两个空格。然后只需使用
if(!/\s{2}/.test(s)){/*CORRECT*/}
。或者类似于
的东西,如果(s.Contains(“”){/*bad*/}
(Contains中的两个空格),它们似乎都能很好地工作。它是如何工作的?请你把正则表达式分解一下,解释一下这些部分,谢谢!这正是我所追求的。@Peter-这里有两个我使用的web应用工具,它们应该可以帮助可视化和理解正则表达式模式的确切功能,并有助于尝试找到其他模式:它们似乎都工作得很好。它是如何工作的?请你把正则表达式分解一下,解释一下这些部分,谢谢!这正是我所追求的。@Peter-以下是我使用的两个web应用程序工具,它们应该有助于可视化和理解正则表达式模式的确切功能,并有助于尝试找到其他模式:
^(\S\s{0,1})*\S$