如何检查字符串是否具有格式[group|any_title]
并将标题返回给我?
[group|This is] -> This is
[group|just an] -> just an
[group|example] -> example
我会以explode
和[group|
作为分隔符并删除最后一个]
。如果(爆炸的)长度> 0,然后字符串格式正确。
但我认为这不是一个好方法,不是吗?
答案 0 :(得分:0)
使用PHP函数regular expression使用preg_match
匹配。
您可以使用例如regexr.com来创建和测试正则表达式,完成后,然后在PHP脚本中实现它(用正则表达式替换preg_match
的第一个参数) :
$text = '[group|This is]';
// replace "pattern" with regular expression pattern
if (preg_match('/pattern/', $text, $matches)) {
// OK, you have parts of $text in $matches array
}
else {
// $text doesn't contain text in expected format
}
特定的正则表达式模式取决于您想要检查输入字符串的严格程度。它可以是/^\[.+\|(.+)\]$/
或/\|([A-Za-z ]+)\]$/
之类的内容。首先检查字符串是否以[
开头,以]
结尾,并包含由|
分隔的任何字符。第二个只是检查字符串是否以|
结尾,后跟大写和小写字母字符和空格,最后是]
。
答案 1 :(得分:0)
所以你想检查字符串是否与正则表达式匹配?
if(preg_match('/^\[group\|(.+)\]$/', $string, $m)) {
$title = $m[1];
}
如果group
部分也应该是动态的:
if(preg_match('/^\[(.+)\|(.+)\]$/', $string, $m)) {
$group = $m[1];
$title = $m[2];
}