TPM*_*TPM 4 php regex split preg-match
我需要帮助将 PHP 的圣经搜索字符串分解为变量或标记。我想获得这篇文章中提供的解决方案的明确使用示例:PHP preg_match bible scripture format。
\n编辑:章节和诗句(从,到)是可选的。
\n例如:我希望能够分割以下任何字符串:
\n\'John 14:16\xe2\x80\x9317\'; //Book Chapter:FromVerse-ToVerse\n\'John 14:16\'; //Book Chapter:FromVerse\n\'John 14\'; //Book Chapter\n\'John\'; //BOOK\nRun Code Online (Sandbox Code Playgroud)\n下列:
\n<?php\n$string = \'Exodus 1:3-7\'; // Where Exodus is the book, 1 the chapter number, 3 the starting verse and 7 the ending verse. [Book Chapter:StartVerse-EndVerse]\n$pattern = \'/[ :-]/\';\nlist( $book, $chapter, $from, $to ) = preg_split($pattern, $string );\necho $book;\nRun Code Online (Sandbox Code Playgroud)\n允许我获取 nbook 名称:Exodus。我还可以以同样的方式检索章节号(echo $chapter)等。
\n我在使用此解决方案时遇到的问题是当书名包含多个单词时。\n示例“1 Samuel 3:4-5”。如果我echo $book得到 offset 3 not Defined 或类似的错误。
在上面链接的帖子中建议这个正则表达式模式更完整:
\n/\\w+\\s?(\\d{1,2})?(:\\d{1,2})?([-\xe2\x80\x93]\\d{1,2})?(,\\s\\d{1,2}[-\xe2\x80\x93]\\d{1,2})?+$/\nRun Code Online (Sandbox Code Playgroud)\n我想我的问题是如何使用这种模式或类似的模式来分割搜索字符串,如上所述。
\n这里讨论了类似的问题:PHP issues parsing a bible book string,但我只是在修改模式时遇到了一些麻烦。我不断收到如下错误:未定义的偏移量:3 ...
\n我很感激你的帮助
\n我不会用一个正则表达式来做到这一点。
在阅读了维基百科中的圣经引文 - 常见格式部分之后,请参阅我的圣经解析器想法:
$holy_str = 'Jonny 5:1,4-5,17,21;';
// split verses from book chapters
$parts = preg_split('/\s*:\s*/', trim($holy_str, " ;"));
// init book
$book = array('name' => "", 'chapter' => "", 'verses' => array());
// $part[0] = book + chapter, if isset $part[1] is verses
if(isset($parts[0]))
{
// 1.) get chapter
if(preg_match('/\d+\s*$/', $parts[0], $out)) {
$book['chapter'] = rtrim($out[0]);
}
// 2.) book name
$book['name'] = trim(preg_replace('/\d+\s*$/', "", $parts[0]));
}
// 3.) verses
if(isset($parts[1])) {
$book['verses'] = preg_split('~\s*,\s*~', $parts[1]);
}
print_r($book);
Run Code Online (Sandbox Code Playgroud)
输出(在 eval.in 进行测试):
Array
(
[name] => Jonny
[chapter] => 5
[verses] => Array
(
[0] => 1
[1] => 4-5
[2] => 17
[3] => 21
)
)
Run Code Online (Sandbox Code Playgroud)
无论这里,如果John 14:16或12 John: 3, 16-17
另请参阅正则表达式常见问题解答。
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |