用正则表达式分割字符串,在行首保留定界符

米歇尔

我需要打破一个字符串:

  • 中断以下三个字符之一:_ $ *
  • 将定界符保持在行的开头

例子:

Hello,_have a beer_or a sandwich.$Bye  =>  Hello,
                                           _have a beer
                                           _or a sandwich.
                                           *Bye

$Hello,_have a beer,$or a sandwich.*Bye  => $Hello,
                                           _have a beer,
                                           $or a sandwich.
                                           *Bye

我想出了这个正则表达式:

/_.*?(?=[_\*\$])|\*.*?(?=[_\*\$])|\$.*?(?=[_\*\$])/g

问题是:

  1. 当字符串的第一部分不以
    开头时,它不会捕获字符串的第一部分* _ $Hello不包括第一个示例。)
  2. 它不会捕获字符串的最后一部分,因为下一个
    字符不是* _ $(在两个示例*Bye中均不包括在内)

我已经尝试过^.*?(?=[_\*\$])为第一部分添加内容,但是随后* _ $没有选择开始的部分

小提琴

妮娜·斯科茨(Nina Scholz)

您可以对想要的特征使用积极的前瞻性进行分割。

var string = '$Hello,_have a beer,$or a sandwich.*Bye_ ',
    splitted = string.split(/(?=[$_*])/);
    
console.log(splitted);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用Rust正则表达式拆分字符串并保留定界符?

使用JavaScript正则表达式拆分字符串,但保留定界符?

正则表达式在前面分割字符串,多个定界符

在C ++中使用正则表达式对字符串进行标记并保留定界符

如何使用正则表达式分割带有复杂定界符的字符串?

使用正则表达式分割字符串,忽略括号中出现的定界符

正则表达式查找子字符串,然后根据定界符进行分割

用正则表达式将PHP字符串转换为带有定界符的数组

正则表达式-删除定界符之间的字符串

dart:使用正则表达式拆分字符串并包含定界符

Java:使用正则表达式拆分字符串而不删除定界符

C ++正则表达式。使用定界符获取字符串

正则表达式匹配子字符串并返回特定定界符之间的字符串

使用多字符正则表达式模式进行拆分并保留定界符

正则表达式拆分为某些字符并保留定界符

正则表达式用定界符分割多行

Java正则表达式在多个定界符(包括其他定界符的子字符串)上拆分

正则表达式,用于匹配字符串,直到第一次出现定界符

正则表达式,用于将模式与键值和字符串中的定界符匹配

如何确保定界符之间的完整字符串适合正则表达式模式?

如何为重复定界符内的各种字符串构造正则表达式匹配项?

使用正则表达式检查包含由定界符分隔的一组单词的字符串

正则表达式以匹配两个定界符之间的确切字符串

为什么在正则表达式上分割时Regex.Split保留定界符

使用正则表达式C ++从单词和定界符之间的字符串中提取所有子字符串

使用Python正则表达式,如何在多个定界符上拆分此字符串而结果中没有空字符串?

正则表达式(Python)-删除以定界符开头的行并保留其他定界符

如何通过正则表达式模式进行拆分并将定界符保留在长字符串上?

正则表达式,以查找两个字符之间包含的字符串,同时排除定界符