javascript - Javascript 从字符串中解析各个部分、段落、图形、标题等文本并替换为书签
问题描述
我正在尝试解析非 xml 标记字符串中的文本中的部分、段落、图形、表格、附录等的特定关键字模式。使用的模式一旦工作,将适用于其中任何一个。如果我有多个句子段落文本,即第 1 句。第 2 句,我会遇到无法理解句子句段的问题。请参阅我正在使用的以下测试字符串。
. 1.11.3 节,1.2 节测试。见稍后部分(?)。1.1 第 1 节。
这个字符串试图解释很多变化:空格和制表符、逗号、没有与数字配对的部分关键字和一个带有 # 后跟一个句点和句点前一个空格的部分。我正在使用https://ww.regexr.com来测试我的正则表达式模式。它会突出显示正确的匹配项,但它会在第 # 节之后的句子末尾处选择句点,但如果句点之前有空格(请参阅上面的测试字符串的结尾),则不会。因此,我想将“Section 1.11.3”、“section 1.2”和“section 1”提取为字符串。但是,我会得到“第 1.2 节”。取而代之的是句末句号。任何没有数字的“部分”也应该跳过。
我的模式是,/[Ss]ection(\s+[0-9]+(([.]){0,1}[0-9]*)*)/gm
如何消除 1.2 之后的时间段作为比赛的一部分?
提取选定关键字后,它们将被 Word 书签和超链接内容替换。
解决方案
以下是用于我上面的测试字符串的正则表达式序列。必须颠倒排序以首先找到要匹配的最长字符串,如果不匹配,则通过 (|) 匹配最短字符串。有人会认为排序无关紧要,但确实如此。
要查找所有“选择”组合,模式为 [Ss]ection\s+((([0-9]+([.]{0,1}[0-9]+) )+)|([0- 9]+[^.] ))
要找到所有带有数字的“选择”组合,只有模式是,
[Ss]ection\s+((([0-9]+([.]{0,1}[0-9]+) ) )|([0-9]+[^.]*))
推荐阅读
- javascript - 如何在 json-rules-engine 中查找失败的规则
- javascript - 如何将一个数组元素设置为树数组结构的根节点?
- python - plt.ion() 最近改变了行为
- javascript - Angular 7根据传递的数据选择选定的属性选项
- scala - scala - scalatest - 最终特征胜过失败断言?
- angular - latest @angular-cli 不会创建具有最新 angular 的项目
- ios - 无法向我的应用添加新的 iOS 捆绑标识符 - LinkedIn
- sql-server - SQL Management Studio:请求组到多个文件
- regex - 正则表达式删除特定的查询参数
- python - 邮递 | 如何使用文本部分中的变量使用 Python 发送邮件?