gpt4 book ai didi

php - 正则表达式,检测文本模式

转载 作者:行者123 更新时间:2023-12-04 05:11:21 26 4
gpt4 key购买 nike

我通过短信与我的用户互动,如果他们用这种模式向我发送短信,我需要执行一个操作:

图案:

*TEXT*TEXT*TEXT#

TEXT所有字符都是允许的,所以我做了这个正则表达式:
if (preg_match('/^\*([^*]*)\*([^*]*)\*([^#]*)\#$/', $text)){
// perform the action...
}

上面的正则表达式实际上很好用,但不允许下一个 lines after # ,例如:
'*hello there*how you doing!?* and blah#'通过正则表达式,但是:
'*hello there*how you doing!?* and blah#

'

上面的正则表达式没有通过(注意 # 之后的下一行)

所以我决定:
$text = str_replace("\n\r", '', $text);

但是上面的例子仍然没有通过:-(

我应该如何在正则表达式中允许下一行?或摆脱他们?

谢谢你的帮助

最佳答案

允许在散列后使用可选的空格和/或换行符:

if (preg_match('/^\*([^*]*)\*([^*]*)\*([^#]*)\#\s*$/', $text)){

我已添加 \s*作为主题结尾之前的表达式。

您也可以预先使用修剪:
if (preg_match('/^\*([^*]*)\*([^*]*)\*([^#]*)\#$/', trim($test))){

更新

作为附加要求,星星之间的文本不能为空:
if (preg_match('/^\*([^*]+)\*([^*]+)\*([^#]+)\#$/', trim($test))){

关于php - 正则表达式,检测文本模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14892042/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com