JS Pig诗匹配子字符串与正则表达式
Posted
技术标签:
【中文标题】JS Pig诗匹配子字符串与正则表达式【英文标题】:JS Pig poem matching substring with Regexp 【发布时间】:2021-11-10 17:32:33 【问题描述】:我有一个带有句子的长字符串,每个句子都包含一个数字。每个句子都用 /X 分隔。有一个给定的数字,我怎样才能只匹配和提取包含该数字的一个句子?
"\X 动物 0000 我真的很喜欢 \X 最重要的是猪。222 \X 猪是高贵的。猪很聪明 3333,\X 猪是 5555 彬彬有礼。\X 但是,偶尔,打破这个 6666 规则,\X 一个人遇到 7777 一只傻猪。\X"
例如,我想提取数字为 5555 的句子,得到这个: " 猪 5555 彬彬有礼。"
如何用 JS 正则表达式做到这一点?我的代码与全文匹配:
str.match(/\\X.*5555.*\\X/);
【问题讨论】:
【参考方案1】:您需要确保在.*
中排除与\\X
匹配的情况。
这对我有用:
/[^\\X]*5555[^\\X]*/g
如果您想排除句子的第一个空格,请使用此选项, 但是它需要对 Lookbehind 的支持:
/(?<=\\X )[^\\X]*5555[^\\X]*/g
【讨论】:
代码正在运行(我在一个正则表达式练习网站上检查了它,它给出了我需要的匹配项),但是在 Chrome 控制台中它不起作用。我有最新版本的 Chrome。 Chrome 不支持正向回溯吗? 这里应该支持 Lookbehind:caniuse.com/?search=lookbehind以上是关于JS Pig诗匹配子字符串与正则表达式的主要内容,如果未能解决你的问题,请参考以下文章