当前位置: 首页 > 知识库问答 >
问题:

如何编写接受单词之间空格的正则表达式模式?

司马高昂
2023-03-14

我对正则表达式模式非常陌生。我正在开发一个接受用户值(状态)的api,基于状态它将执行过滤操作,直到它工作正常。

现在,我的要求是,我希望根据以下条件接受

>

  • 如果字符串包含多个单词,则应仅用空格分隔,而不能用其他符号(/)分隔。

    允许使用大写和小写字母。

    有效的方案:

    1. 准备发送

    无效场景:

    >

  • 准备好发送了吗

    准备调度

    $pattern=[a-zA-Z];
    $validation=preg_match($pattern,$request->status);
    if($validation){
      //My logic executes if it matches the pattern
    }
    
  • 共有2个答案

    班展
    2023-03-14

    您可以更新$pattern=“^[a-zA-Z0-9\]*$”或只添加一个空格$在配额下添加图案:

    $pattern="^[a-zA-Z0-9_ ]*$";
    $validation=preg_match($pattern,$request->status);
    if($validation){
      //My logic executes if it matches the pattern
    }
    
    林富
    2023-03-14

    对于模式,您可以重复字符类一次或多次,因为单词之间只允许有空格,所以可以选择重复前面有空格的相同字符类。

    ^[A-Za-z]+(?: [A-Za-z]+)*$
    

    您可以更新代码,将模式放在引号之间,并在模式周围添加分隔符/

    $pattern="/^[A-Za-z]+(?: [A-Za-z]+)*$/";
    $validation = preg_match($pattern,$request->status);
    
    if($validation){
        //My logic executes if it matches the pattern
    }
    
     类似资料:
    • 我想要一个防止空白的正则表达式,只允许带标点符号的字母和数字(西班牙语)。下面的正则表达式工作得很好,但是它不允许标点符号。 例如,当使用这个正则表达式时,“Hola como estas”是可以的,但是“Hola,como estas?”不匹配。 如何将其调整为标点符号?

    • 我正在尝试抓取模式中第一个连字符之后的文本 但在此模式中: 我希望它跳过‘不想要的’文本,并匹配的文本后面的下一个连字符(DesiredText)。我创建了一个具有两种模式regex101,并需要修改我的基本regex,以便如果中存在一个或多个我不想匹配的单词,那么它将匹配第二个连字符文本: https://regex101.com/r/vesqh3/1

    • 正则表达式中 我想让'IS'不匹配字符串'12ISW125-200B' 而'ISW'匹配字符串'12ISW125-200B' 请问如何写模式代码。 我之前写的代码是: 但实际结果是'IS'也能匹配

    • 我正在尝试编写一个正则表达式,使其只有两个单词,它们之间只有一个空格。两个字都不能少于三个字符。例子:乔·史密斯

    • 我有一个数据帧,其中一列是一系列字符串,其中截然不同的短语要么是单个单词,要么是用空格分隔的多个单词;每个单词的第一个字母都是大写字母(例如“草莓”或“草莓果酱”)。相反,如果这些词不是同一短语的一部分,则不会间隔开(例如“jamapple”)。 我如何使用regex在一个字符串中根据上面的规则将短语分开(分为“草莓果酱”、“苹果”、“香蕉”、“梨碎”、“土豆”、“杏仁蛋糕”)。然后提取他们?即获