首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于中断长引用的preg_split

用于中断长引用的preg_split
EN

Stack Overflow用户
提问于 2014-04-03 15:58:25
回答 1查看 53关注 0票数 0

我一直在尝试创建一个正则表达式来分割各种圣经引用。

到目前为止,我得到的是:

代码语言:javascript
运行
复制
$split_references = preg_split("/((, | or | and ))[^0-9(]/i", $reference);

这可能需要处理的案文样本如下:

创世纪1:1-2:4a和诗篇136:1-9,23-26,创世纪7:1-5,11-18;8:6-18;9:8-13和诗篇46,创世纪22:1-18,诗篇16,出埃及记14:10-31;15:20-21和出埃及记15:1b-13,17-18,以赛亚书55:1-11,以赛亚书12:2-6,巴录3:9-15,3:32-4:4或8:1-8,19-21;9:4b-6和诗篇19,以西结36:24-28,诗篇42,43,以西结37:1-14,诗篇143,西番莲3:14-20,诗篇98创世纪1:1-2:4a,诗篇136:1-9,23-26,创世纪7:1-5,11-18;8:6-18;9:8-13和诗篇46,创世纪22:1-18,诗篇16,出埃及记14:10-31;15:20-21及出埃及记15:1b-13,17-18,以赛亚书55:1-11,以赛亚书12:2-6,巴录3:9-15,3:32-4:4或箴言8:1-8,19-21;9:4b-6及诗篇19,以西结记36:24-28,诗篇42,43,以西结37:1-14,诗篇143,西法尼雅3:14-20及诗篇98

我目前得到的结果是:

代码语言:javascript
运行
复制
Array(
[0] => Genesis 1:1-2:4a
[1] => salm 136:1-9, 23-26
[2] => enesis 7:1-5, 11-18; 8:6-18; 9:8-13
[3] => salm 46
[4] => enesis 22:1-18
[5] => salm 16
[6] => xodus 14:10-31; 15:20-21
[7] => xodus 15:1b-13, 17-18
[8] => saiah 55:1-11
[9] => saiah 12:2-6
[10] => aruch 3:9-15, 3:32-4:4
[11] => roverbs 8:1-8, 19-21; 9:4b-6
[12] => salm 19
[13] => zekiel 36:24-28
[14] => salm 42, 43
[15] => zekiel 37:1-14
[16] => salm 143
[17] => ephaniah 3:14-20
[18] => salm 98
)

注意到第一个字母被切断了吗?我正在尝试匹配逗号字母,以防止在逗号上断线数组。

谢谢你能提供的任何指示!:)

詹森·西尔弗

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-03 16:03:44

使用前瞻性:

代码语言:javascript
运行
复制
$split_references = preg_split("/((, | or | and ))(?=[^0-9(])/i", $reference);

这表示“没有后面跟着这些字符”,而没有“消费”这些字符。可选方案(对负字符类进行相同但消极的展望而不是积极的展望):

代码语言:javascript
运行
复制
$split_references = preg_split("/((, | or | and ))(?!=[0-9(])/i", $reference);

上述结果:

代码语言:javascript
运行
复制
Array
(
[0] => Genesis 1:1-2:4a
[1] => Psalm 136:1-9, 23-26
[2] => Genesis 7:1-5, 11-18; 8:6-18; 9:8-13
[3] => Psalm 46
[4] => Genesis 22:1-18
[5] => Psalm 16
[6] => Exodus 14:10-31; 15:20-21
[7] => Exodus 15:1b-13, 17-18
[8] => Isaiah 55:1-11
[9] => Isaiah 12:2-6
[10] => Baruch 3:9-15, 3:32-4:4
[11] => Proverbs 8:1-8, 19-21; 9:4b-6
[12] => Psalm 19
[13] => Ezekiel 36:24-28
[14] => Psalm 42, 43
[15] => Ezekiel 37:1-14
[16] => Psalm 143
[17] => Zephaniah 3:14-20
[18] => Psalm 98Genesis 1:1-2:4a
[19] => Psalm 136:1-9, 23-26
[20] => Genesis 7:1-5, 11-18; 8:6-18; 9:8-13
[21] => Psalm 46
[22] => Genesis 22:1-18
[23] => Psalm 16
[24] => Exodus 14:10-31; 15:20-21
[25] => Exodus 15:1b-13, 17-18
[26] => Isaiah 55:1-11
[27] => Isaiah 12:2-6
[28] => Baruch 3:9-15, 3:32-4:4
[29] => Proverbs 8:1-8, 19-21; 9:4b-6
[30] => Psalm 19
[31] => Ezekiel 36:24-28
[32] => Psalm 42, 43
[33] => Ezekiel 37:1-14
[34] => Psalm 143
[35] => Zephaniah 3:14-20
[36] => Psalm 98

)
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22842953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档