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