PHP PREG_在数字1-100上拆分
我正在编写一些代码来分解测试的全文,该测试将以以下格式复制和粘贴:PHP PREG_在数字1-100上拆分,php,regex,preg-split,Php,Regex,Preg Split,我正在编写一些代码来分解测试的全文,该测试将以以下格式复制和粘贴: 1. This is question number one. A. Answer 1 B. Answer 2 C. Answer 3 D. Answer 4 2. This is question number two. 3. This is another question, number three. 45. Ken has uses his money, $353. How much does he have aft
1. This is question number one.
A. Answer 1
B. Answer 2
C. Answer 3
D. Answer 4
2. This is question number two.
3. This is another question, number three.
45. Ken has uses his money, $353. How much does he have after spending $214.
我正在使用以下预分割:
$questions = preg_split("/[0-9]+\./", $_POST[test]);
我的问题是像#45这样的问题,问题本身有数字,后面有句号
我只想匹配数字1-100,后跟一个句号。例如
一,。
2.
3.
4.
5.
etc使用^指定它是行的开头,使用
g
和m
修饰符指定全局和多行:
/^[0-9]+\.\s/m
我认为最好将
多行
标记与^
一起使用:
$questions = preg_split('/^ *[0-9]+\. +/m', $_POST[test]);
一个介于1和100之间的数字,后跟一个句点,可以由
/\b(?:100|[1-9][0-9]?)\./
但如果实际规则是匹配行首的数字,则使用
/^\d+\./m
您可以改用
preg\u match\u all()
:
preg_match_all('~(?:^|\R)[0-9]+\. \K.+~', $_POST['test'], $matches);
$questions = $matches[0];
那么,如果你使用正常的人类词语,你会如何区分它们呢?你怎么能说数字1-100后面加句号不会出现在问题的任何地方?这些测试的分数是多少?我包含的测试问题只是一个例子。我不能发布我正在研究的实际试题,因为它们是受版权保护的材料@sln:它们是为高中生准备的整个文本是一个字符串PCRE不支持
/g
是吗?/g
是Javascript不是PCRETouche?我想它是隐式的