正则表达式:查找子字符串以AND结尾从字符串开始并从子字符串替换单词

时间:2015-05-18 05:36:34

标签: javascript regex string substring

可能的输入:

输入1:

Hi John, I have recently..

输入2:

 hi , I have...

输入3:

 Hi Hans, I have...

输入4:

Hi, I have...

我想要一个正则表达式来添加或替换名称。以Hi开头(忽略大小写)并以,结尾。 (仅替换第一次出现)

例如,如果我想用David

替换它

输出:Hi David, I have recently..

2 个答案:

答案 0 :(得分:2)

^(\S+)\s*\S*(?=,)

您可以$1 David使用此。替换。请参阅演示。

https://www.regex101.com/r/fJ6cR4/7

var re = /^(\S+)\s*\S*(?=,)/gmi; 
var str = 'Hi John, I have recently..\nhi , I have...\nHi Hans, I have...\nHi, I have...';
var subst = '$1 David'; 

var result = str.replace(re, subst);

答案 1 :(得分:0)

试试这个RegEx。只需在space之后添加$1

var regX = /^(hi)(\s?([a-z]+)?)?(?=,.+)/igm; 
var str = 'Hi John, I have recently..\nhi , I have...\nHi Hans, I have...\nHi, I have...';
var sub = '$1 David';
var result = str.replace(regX, sub);