gpt4 book ai didi

regex - 使用正则表达式在驼峰式字符串中放置空格

转载 作者:行者123 更新时间:2023-12-04 01:38:17 26 4
gpt4 key购买 nike

我的问题来自 add a space between two words .

要求:拆分驼峰式字符串并在大写字母前放置空格,后跟小写字母或可以什么都没有。大写字母之间不应出现空格。

例如:CSVFilesAreCoolButTXT是我想以这种方式产生的字符串 CSV Files Are Cool But 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]) 匹配的子串子模式等

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

替换字符串中的空格确保每次匹配时都会在主题字符串中插入一个空格(尾随的 g 标志意味着正则表达式引擎将查找多个匹配项)。

关于regex - 使用正则表达式在驼峰式字符串中放置空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15369566/

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