我试图分裂一个字符串,我从一个pdf文件中提取。这是绳子..。
"1.“Swadesabhimani”的第一任主编:(A) Vakkom Abdul Khadar Maulavi (C) K. Ramakrishna Pillai (B) Sir. C.P. Govinda Pillai (D) G. Parameswaran Pillai 2. "Mitra mela',一个秘密社团,由:(A) B.G. Tilak (C) Madan Lal Mitra (B) Sachin Sanya (D) Savarkar 3发起。'Lekshamveedu‘计划由:(A) A.K. Gopalan (C) Pattom发起。4.关于水(防止和控制污染)的法令:( A ) 1974 (B) 1981 (C) 2002 (D) 1986扩大形式:(A)印度国家电影学院(B)印度国家电影学院(C)印度国家电影资料馆(D)印度国家电影档案馆(D)印度国家电影管理局6.下列立法中禁止Sati并将其定为非法?(A) 1870年法令(B) 1930年“Sharada法”(C) 1795年“孟加拉管理法”(D) 1829年12月第十七号条例法:(A)查尔斯·梅特卡夫(C)约翰·亚当斯(B)韦尔斯利勋爵(D)黑斯廷斯勋爵“
问题是
( 1)第五个问题的问号不见了。
2)第六条有问号(?)而不是(:)在问题的末尾
( 3)第七次缺点()问号后
我想要的输出是针对每个问题-选项集的单独字符串。
"1.“Swadesabhimani”第一任主编:(A) Vakkom Abdul Khadar Maulavi (C) K. Ramakrishna Pillai (B)
"2. "Mitra mela“,由以下组织组成:(A) B.G. Tilak (C) Madan Lal Dhingra (B) Sachin三亚(D) Savarkar”
等等..。
这是我尝试过的
1.
Pattern p=Pattern.compile("[0-9][.][a-zA-Z0-9]*");
String[] s=p.split(mcqString);
2.
Pattern p=Pattern.compile("[0-9][.]?[a-zA-Z0-9]*[:|?][a-zA-Z0-9]*");
String[] s=p.split(mcqString);
和其他组合,但没有完全工作
发布于 2020-02-29 15:32:47
您的问题都包含了([A-Z])
的部分
一个选项是匹配所有不以括号开头的部分,而不是拆分。然后匹配以下所有不以括号开头的内容。
^(?:(?!\([A-Z]\)).*\R)+(?:\([A-Z]\).*\R*)+
解释
^
开始(?:
非捕获群(?!\([A-Z]\))
负前瞻,断言右边不是()
之间的字符A-Z.*\R
匹配除换行符和unicode换行符以外的任何字符。
)+
关闭组并重复1+时间以获得至少1行(?:
非捕获群\([A-Z]\).*\R*
匹配()
之间的字符A-Z,1+乘以任意字符和可选的unicode换行符序列
)+
关闭组并重复1+时间以获得至少1行在Java中
final String regex = "^(?:(?!\\([A-Z]\\)).*\\R)+(?:\\([A-Z]\\).*\\R*)+";
https://stackoverflow.com/questions/60466383
复制相似问题