name = name. replace(/([A-Z]) /g, " -$1" );
是js。
更正我的意思是name = name.replace(/([A-Z]) /g, "-$1" );
答案 0 :(得分:2)
这意味着:
取字符串“name”,然后查找每个大写字母后跟一个空格。当您找到一个匹配项时,请用连字符替换它,然后用字母替换它。完成所有事件后,将此新字符串分配回“name”变量。
例如,如果在执行此行之前“name”为AB CD
,则执行此行后“name”将为A-BCD
。
答案 1 :(得分:1)
非常简单,[A-Z]
表示匹配任何大写字母,/g
位表示全局(整个输入字符串),-$1
位表示替换每个匹配使用X
的小组-X
。 $1
指的是第一个参数中括号中的位。
因此,如果输入为“HE LLO”,您将获得“H-E LLO”。如果输入是“He LL o”,你应该得到“He L-L o”。
我建议您阅读正则表达式,因为它们可能非常复杂。
答案 2 :(得分:0)
(A-Z)
之后是一个空格。所以它应该只匹配大写字符后跟一个空格。这些被“ - ”和原始字符(反向引用)取代。所以对于字符串“HELLO MY Friends”,结果将是HELL -OM -YFriends
。 /g
表示全局,因此替换所有出现。
在perl中尝试过:
$var = "HELLO MY Friends";
$var =´ s/([A-Z]) / -$1/g;
print $var . "\n";