加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 使用正则表达式将空间放在驼峰大小写字符串中

发布时间:2020-12-14 06:31:27 所属栏目:百科 来源:网络整理
导读:我从 add a space between two words开始提问. 要求:拆分一个驼峰案例字符串并在大写字母之前放置空格,后面跟一个小的大小写字母或者什么都不是.大写字母之间不应该出现这个空间. 例如:CSVFilesAreCoolButTXT是一个字符串我想以这种方式产生它CSV文件很酷
我从 add a space between two words开始提问.

要求:拆分一个驼峰案例字符串并在大写字母之前放置空格,后面跟一个小的大小写字母或者什么都不是.大写字母之间不应该出现这个空间.

例如:CSVFilesAreCoolButTXT是一个字符串我想以这种方式产生它CSV文件很酷但TXT

我开这种方式定期表达:

"LightPurple".replace(/([a-z])([A-Z])/,'$1 $2')

如果你有超过2个单词,那么你需要使用g标志来匹配它们.

"LightPurpleCar".replace(/([a-z])([A-Z])/g,'$1 $2')

如果尝试拆分像CSVFile这样的单词,那么您可能需要使用此正则表达式:

"CSVFilesAreCool".replace(/([a-zA-Z])([A-Z])([a-z])/g,'$1 $2$3')

但它仍然不符合我的要求.

var rex = /([A-Z])([A-Z])([a-z])|([a-z])([A-Z])/g;

"CSVFilesAreCoolButTXT".replace( rex,'$1$4 $2$3$5' );
// "CSV Files Are Cool But TXT"

并且

"CSVFilesAreCoolButTXTRules".replace( rex,'$1$4 $2$3$5' );    
// "CSV Files Are Cool But TXT Rules"

与正则表达式模式匹配的主题字符串的文本将替换为替换字符串’$1 $4 $2 $3 $5′,其中$1,$2等引用模式的捕获组()匹配的子字符串.

$1表示由第一个([A-Z])子模式匹配的子字符串,$3表示由第一个([a-z])子模式匹配的子字符串等.

由于交替字符|,要进行匹配,正则表达式必须匹配([AZ])([AZ])([az])子模式或([az])([AZ])子-pattern,因此如果匹配,则几个捕获组将保持不匹配.这些捕获组可以在替换字符串中引用,但它们对它没有影响 – 实际上,它们将引用空字符串.

替换字符串中的空格确保每次匹配时在主题字符串中插入空格(尾随g标记表示正则表达式引擎将查找多个匹配).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读