正则expression式的string与数字使用node.js
我正在使用正则expression式replacestring。
我如何find下面的十进制数字的string。
Section 5.1.1 Sections 5.1.2 Sections 5.1.3 and 5.1.4 Sec. 5.3.1
任何人都可以帮助我吗?
提前致谢。
更新:
(Sec(?:s\.|s|tions|tion|.)?)( |\s)?((\w+)?([.-]|(–)|(—))?(\w+))(\s+)?((\w+)?([.-]|(–)|(—))?(\w+))(\s+(to|and|through)\s(\w+)([.-]|(–)|(—))(\w+))?
怎么样
/(^|\s)(Sec\.|Sections?) +[0-9]+(\.[0-9]+)*( +and +[0-9]+(\.[0-9]+)*)*(?=$|\s)/
它将匹配子string
- 以空格开始或在searchstring的开头
- 之后是空白或者在searchstring的末尾
- 从第二部分开始
Sec.
,Section
或Sections
- 接着是一个或多个空格
- 后面跟着一个号码
- 可选地跟随有一个或多个
and [section number]
,其中and
被一个或多个空间包围。
部分号码匹配,如果他们
- 从一个或多个数字开始
- 可选地跟随一个或多个点并再次一个或多个数字。
您可以trim
比赛以消除比赛开始时的最终空白。
更新
/(^|[^\w])(Sec\.|Sections?) +[0-9]+(\.[0-9]+)*( +and +[0-9]+(\.[0-9]+)*)*(?=$|[^\w])/
这个匹配子string
- 从非单词字符开始,或者在searchstring的开头
- 之后是一个非单词字符或者在searchstring的末尾
像上面一样rest。 match.replace(/^[^\w]+/, '')
在匹配上使用额外的replace
来消除非单词字符匹配