我对正则表达式模式非常陌生。我正在开发一个接受用户值(状态)的api,基于状态它将执行过滤操作,直到它工作正常。
现在,我的要求是,我希望根据以下条件接受值
:
>
如果字符串包含多个单词,则应仅用空格
分隔,而不能用其他符号(/)分隔。
允许使用大写和小写字母。
有效的方案:
无效场景:
>
准备好发送了吗
准备调度
$pattern=[a-zA-Z];
$validation=preg_match($pattern,$request->status);
if($validation){
//My logic executes if it matches the pattern
}
您可以更新$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
}
对于模式,您可以重复字符类一次或多次,因为单词之间只允许有空格,所以可以选择重复前面有空格的相同字符类。
^[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在一个字符串中根据上面的规则将短语分开(分为“草莓果酱”、“苹果”、“香蕉”、“梨碎”、“土豆”、“杏仁蛋糕”)。然后提取他们?即获