我从add a space between two words开车问我的问题。
要求:拆分一个驼峰式大小写字符串,并在大写字母前加空格,然后加一个小写字母,或者什么都不加。大写字母之间不应有空格。
例如:CSVFilesAreCoolButTXT
是一个字符串,我想以这种方式产生CSV Files Are Cool But TXT
我开着一辆普通快车这样走:
"LightPurple".replace(/([a-z])([A-Z])/, '$1 $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')
型
但它仍然不符合我提出的要求。
6条答案
按热度按时间busg9geu1#
字符串
还有
型
匹配正则表达式模式的主题字符串的文本将被替换字符串
'$1$4 $2$3$5'
替换,其中$1
,$2
等。引用与模式的捕获组()
匹配的子字符串。$1
是指第一个([A-Z])
子模式匹配的子串,$3
是指第一个([a-z])
子模式匹配的子串,以此类推。由于交替字符
|
,要进行匹配,正则表达式必须匹配([A-Z])([A-Z])([a-z])
子模式或([a-z])([A-Z])
子模式,因此如果进行匹配,则几个捕获组将保持不匹配。这些捕获组可以在替换字符串中引用,但它们对它没有影响-实际上,它们将引用空字符串。替换字符串中的空格确保每次匹配时在主题字符串中插入空格(尾部
g
标志意味着正则表达式引擎将查找多个匹配)。oewdyzsn2#
如果第一个字符始终为小写。
字符串
如果第一个字符是大写。
型
r6hnlfcb3#
在.NET中使用正则表达式拆分CamelCase:
字符串
范例:
型
**输出:**阿联酋的首都是阿布扎比
ajsxfq5m4#
这对我很有效
字符串
上面的代码几乎适用于我所有的用例。我有一些特殊之处,'&'和'_'应该被视为等同于大写字符
简要说明
型
**Check out the regexr fiddle here**第一个字符
a5g8bdjr5#
使用lookaheads / behinds替换JavaScript的驼峰式大小写:
字符串
rryofs0p6#
对于那些谁也希望降低大写字母的所有字除了第一。
字符串