javascript - WUB 中的正则表达式提取字符
问题描述
我想要一个提取“WUB”中所有单词的正则表达式,但没有找到任何解决方案!例如它会从
"WUBWEWUBAREWUBWUBTHEWUBCHAMPIONSWUBMYWUBFRIENDWUB"
以下字符串(不带引号)
["WE", "ARE", "THE", "CHAMPIONS"]
这是我到目前为止所尝试的:
((?:.(?!WUB))+)
但它给了我以下输出(来自上面的例子):
['WUBW', 'WUBAR', 'WU', 'WUBTH', 'WUBCHAMPION', 'WUBM', 'WUBFRIEN', 'WUB']
请帮助我更了解这个问题
解决方案
$str =~ / WUB \K (?:(?!WUB).)+ (?=WUB) /sxg
或者
$str =~ / (?<=WUB) (?:(?!WUB).)+ (?=WUB) /sxg # Probably slower.
从 之后开始WUB
,但实际上在匹配 ( \K
) 中不包括 WUB,查找一个或多个不是 . 开头的字符WUB
。确保其后跟WUB
( (?=WUB)
)。
如果字符串总是以 开头和结尾WUB
,或者如果您不介意获取第一个之前WUB
和最后一个之后的文本WUB
,则以下内容会更清晰且肯定更快:
grep length, split /WUB/, $str
推荐阅读
- java - Spring Boot中使用HSQLDB时获取数据库锁失败
- python-3.x - 不同人的上次访问时间间隔
- sparql - 根据部分名称匹配检索 Wikidata ID 候选者
- mysql - Google CloudSQL 上的全局变量 explicit_defaults_for_timestamp
- python - 它如何将列表中的结果保存到 .txt 文件中?
- c# - WPF C# - DataGrid 单元格中的多个 CheckBox 控件
- c# - Powershell.Create 在调试时返回 null
- javascript - 如何在摩纳哥编辑器中设置多行规则
- python - 连接具有重复行的单元格
- amazon-web-services - 连接到 AWS ClientVPN 时,RDS 实例解析为公共 IP 地址