Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Asp.net 正则表达式,以禁止字符串中间的两个连续空白。_Asp.net_Regex_Web User Controls - Fatal编程技术网

Asp.net 正则表达式,以禁止字符串中间的两个连续空白。

Asp.net 正则表达式,以禁止字符串中间的两个连续空白。,asp.net,regex,web-user-controls,Asp.net,Regex,Web User Controls,我需要一个正则表达式来满足以下要求: 只允许使用字母、句点和空格 字符串的开头和结尾没有空格 字符串中间的空白是可以的,但不是两个连续的空白空间。 匹配项: "Hello world." "Hello World. This is ok." " Hello World. " "Hello world 123." "Hello world." 不匹配: " Hello World. " "Hello world 123." "Hello world." 这在我的情况下奏效了 &l

我需要一个正则表达式来满足以下要求:

  • 只允许使用字母、句点和空格
  • 字符串的开头和结尾没有空格 字符串中间的空白是可以的,但不是两个连续的空白空间。<李>
匹配项:

"Hello world."
"Hello World. This is ok."
" Hello World. "
"Hello world 123." 
"Hello  world."
不匹配:

" Hello World. "
"Hello world 123." 
"Hello  world."
这在我的情况下奏效了

<asp:RegularExpressionValidator ID="revDescription" runat="server" 
                                ControlToValidate="taDescription" Display="Dynamic" ErrorMessage="Invalid Description." 
                                Text="&nbsp" 
                                ValidationExpression="^(?i)(?![ ])(?!.*[ ]{2})(?!.*[ ]$)[A-Z. ]{8,20}$"></asp:RegularExpressionValidator>

这里有一个Python解决方案,使用和确保遵循空格规则:

regex = re.compile(
    """^          # Start of string
    (?![ ])       # Assert no space at the start
    (?!.*[ ]{2})  # Assert no two spaces in the middle
    (?!.*[ ]$)    # Assert no space at the end
    [A-Z. ]{8,20} # Match 8-20 ASCII letters, dots or spaces
    $             # End of string""", 
    re.IGNORECASE | re.VERBOSE)

我建议检查正则表达式之外的长度,否则表达式可能会变得太复杂

下面是JavaScript中的一个示例代码段:

if (str.length < 8 || str.length > 20)
  return false;
if (str.match(/(^\s|\s$|\s\s|[^A-Za-z.\s])/))
  return false;
更新:如果您需要将所有内容都放在一个表达式中,恐怕您必须省去对连续空格的检查,因为此限制使语言上下文敏感,因此正则表达式无法对其进行检查。您可以检查以字母开头的字符串,后跟6到18个字母、点或空格,并以字母结尾:

[A-Z][A-Z. ]{6,18}[A-Z]

嗨,欢迎来到StackOverflow!首先,如果您熟悉编辑器的格式选项,我认为这将是一个好主意-您所提出的问题并不能真正反映您的需求。这次我会帮你做的,这样你就可以看到它是如何工作的。第二,你还没有真正问过一个问题——你陷入了问题的哪一部分?第三,你使用哪种语言?所有这些主题都包含在帮助页面和regex常见问题解答中。我一定会尽快学习。感谢您的帮助:)@Tim PietzckerI我正在使用asp.net用户控件正则表达式验证程序,如下所示。请你给我引路好吗。您建议的正则表达式不起作用。@AfnanAhmad:您没有使正则表达式不区分大小写。在正则表达式的开头添加
(?i)
。非常感谢您,我已经完成了。我已经做了以下修改。我真的很感谢你。我找了很多,但最后你给了我答案。超级:)我正在使用asp.net正则表达式验证程序。我已经根据你的建议更改了代码,但运气不好。这是代码。我已经留下了最小值和最大值验证。我将通过将Maxlength应用于textbox来实现这一点。现在我只想在开始时不允许空白,而不允许中间有两个连续的白色空间。不匹配=(Hello world)=(Hello world)连续的空格是我在开始空格和结束空格时遇到的主要问题,就像这样^[a-zA-Z][\.\s\a-zA-Z]*[a-zA-Z\.]$我只是不想让用户进入连续空格。