Ruby正则表达式按多分隔符拆分字符串的实现求助
解决方案:同时按逗号和"And"拆分字符串
嘿,这个问题很常见!你之前的正则只处理了逗号分隔的情况,没把"and"作为分隔符纳入进来,所以才会得到["one", "two and three"]这样的结果。
要同时匹配两种分隔符,我们可以用正则的**选择符(|)**把两种分隔规则结合起来,具体代码如下:
const str = 'one, two and three'; const splitResult = str.split(/,\s+|\s+and\s+/); console.log(splitResult); // 输出: ["one", "two", "three"]
正则说明:
,\s+:匹配逗号后面跟着一个或多个空白字符(比如空格、制表符等),处理像, two这样的分隔场景|:正则里的“或”操作符,用来分隔两种不同的匹配规则\s+and\s+:匹配前后都带有一个或多个空白字符的"and",处理像two and three这样的分隔场景
如果你的字符串里可能存在"and"前后空格数量不一致的情况(比如two and three或者two and three),这个正则也能完美处理,因为\s+会匹配任意数量的空白字符。
要是你还需要处理更极端的场景(比如"and"前面没有空格,或者逗号后面没有空格),可以调整正则为/,|\s+and\s+/,不过根据你的示例来看,第一种正则应该完全满足需求啦!
内容的提问来源于stack exchange,提问作者Tom
相关产品推荐
相关产品推荐

