正则表达式只用破折号替换第一个空格

时间:2014-06-09 16:20:34

标签: regex

我想用短划线替换线上的第一个空格。这有点复杂,因为解析器会自动应用/ g来应用整行。

示例输入: A1 B2单词单词

期望的输出: A1-B2单词单词

我不能做一个简单的/ \ s / - /因为自动/ g会将所有空格改为破折号。我尝试了一个负回顾/ s(?< \ s \ w)和其他几个变体(单词和边界匹配)但我最终匹配所有空格或我匹配第一个或最后一个字符与空格,以便我最终裁掉了太多。

如何仅使用全局应用的模式替换第一个空格?

2 个答案:

答案 0 :(得分:1)

您可以尝试这样的事情:

/^(\S*)\s/$1-/

^指定行的开头,\S匹配所有非空白字符。这将假设您没有任何前导空格,否则您的第一个字符将替换为 - 。

答案 1 :(得分:0)

您可以使用^表示一行的开头:

/^.*?\s/$1-/