-2
我有以下字符串Item * \* and *
。我想匹配所有的*
字符並跳過\*
之一。在正則表達式中匹配字符*而不是 *?
var input = "Item * \\* and *";
var output = (some regex magic happens here)
alert(output); // Item foo \* and foo
任何想法?
我有以下字符串Item * \* and *
。我想匹配所有的*
字符並跳過\*
之一。在正則表達式中匹配字符*而不是 *?
var input = "Item * \\* and *";
var output = (some regex magic happens here)
alert(output); // Item foo \* and foo
任何想法?
這就是我想你想acheive:
var input = "Item * \\* and *";
var repl = "foo";
var output = input.replace(/(\\\*)|\*/g, function(_, a) { return a || repl; });
alert(output); // Item foo \* and foo
基本上,當你提供的replace
方法的功能,它會在比賽中任何匹配組通過作爲該函數的參數,並使用返回值作爲替換字符串。在這種情況下,由於自變量a
僅在與"\*"
匹配時才具有值,所以它將使該匹配保持不變。否則,它將用"foo"
替換它。
您使用哪種語言/平臺?你試過什麼了?如果你的字符串包含'\\ *'會發生什麼?所有這些都是你的問題失蹤的重要部分。 – 2014-10-20 17:46:00
您使用哪種語言/平臺? ** Javascript **你到目前爲止嘗試過什麼? **我能夠匹配「*」,但只與空間匹配。**如果您的字符串包含'\\ *',會發生什麼? **不應該匹配** – 2014-10-20 18:05:55
輸出結果應該如何?一個數組像'[「Item *」,「和*」]'?請讓你的問題陳述更清楚。 – 2014-10-20 18:18:58