我正在努力建立一个正则表达式来解析这种字符串(圣经经文):

  'John 14:16–17, 25–26'
  'John 14:16–17'
  'John 14:16'
  'John 14'
  'John'

因此,基本模式是:
Book [[Chapter][:Verse]]
其中章节和经文是可选的。

最佳答案

在这里试试

\b[a-zA-Z]+(?:\s+\d+)?(?::\d+(?:–\d+)?(?:,\s*\d+(?:–\d+)?)*)?

查看并测试here on Regexr

由于结尾处是(?:,\s*\d+(?:–\d+)?)*,因此您可以具有经文列表,末尾经文范围。

关于PHP preg_match圣经经文格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9974012/

10-11 11:17