Javascript正则表达式匹配独立S而不匹配撇号S.

时间:2017-07-27 21:00:09

标签: javascript regex

我试图匹配一个单独的s忽略案例。我不想匹配前面有撇号的s。我当前的正则表达式是/\b[s]\b/ig,我的测试字符串是第2行和第3行的S应该是唯一的匹配。

Men's
S
Just S Things
Somethings

Regexr:http://regexr.com/3geo2

2 个答案:

答案 0 :(得分:2)

经过短暂的实验后,我想出了以下正则表达式

(?:\s|^)s(?:\s|$)

DEMO

答案 1 :(得分:1)

您可以使用的一个manually rebuilt with something like是在非捕获表达式和捕获表达式之间使用交替,然后在正则表达式匹配的后期处理中,丢弃不具有捕获的匹配项基。

正则表达式将是:

/'s|(\bs\b)/ig

如果您使用它来进行替换操作,它将被用作:



var str = "Men's\nS\nJust S Things\nSomethings";

var updatedStr = str.replace(/'s|(\bs\b)/ig,
  (match, captureGroup) => captureGroup ? "<S>" : match
);

console.log(updatedStr);
&#13;
&#13;
&#13;