gpt4 book ai didi

arrays - 在每个点处拆分字符串,除非出现某些单词

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:06 24 4
gpt4 key购买 nike

我真的是正则表达式的新手,目前在解决问题时遇到了一些麻烦。我将不胜感激 :)

使用 ruby 2.4.2

问题:在每个点处拆分一个字符串,除非 asd 单词在点之后

String: str = "qwer.qwer.asd"
Code: str.split(/\./)
Output: ["qwer", "qwer", "asd"]

The output should be: ["qwer", "qwer.asd"]

最佳答案

使用

str.split(/\.(?!asd\b)/)

\.(?!asd\b) 模式匹配任何后跟 asd 后跟单词边界的点。 (?!asd\b) 是一个否定先行,如果先行模式在当前位置的右侧立即找到匹配项,则匹配失败。

如果“单词”以句点或字符串结尾结束,请使用

str.split(/\.(?!asd(?:\.|\z))/)

其中 (?:\.|\z) 是匹配点 (\.) 或 (|) 字符串结尾 (\z)。

参见 Ruby demo和一个 regex demo .

关于arrays - 在每个点处拆分字符串,除非出现某些单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50137678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com