我有4个案例:(我的重点是这一部分:... *{anything}* ...
)
var str = "this * is * a test";
var str = "this *is * a test";
var str = "this * is* a test";
var str = "this *is* a test";
我想要所有这些输出:
var newstr = "this *is* a test";
我该怎么做?
注意:如果我可以为多个字符执行此操作,例如' *','`','〜' ,' _'那将是完美的。
答案 0 :(得分:4)
我最初认为你正在寻找替换后面跟空格的星号。
使用select productid
from yourtable
group by productid
having max(case when attribute = 'Size' then value end) = 'Big'
and max(case when attribute = 'Weight' then value end) = 'Heavy'
功能
replace
击穿
string.replace(/(\*+)[\t\n\r]*(.*?)[\t\n\r]*(\*+)/g,'$1$2$3')
默认情况下,星号匹配零个或多个字符。由于您正在寻找文字星号,因此必须使用反斜杠进行转义。使用\*+
修饰符是因为我们正在搜索一个或多个星号
+
- 如上所述,星号表示零个或多个字符。在这种情况下,我们正在搜索空白字符
\t*
- 这匹配任何角色。 (.*?)
标识符表示零或一。
?
- 这会找到任何空格字符。它可以简化为[\t\n\r]*
\s
- 全局标志,表示搜索所有实例。
/g
- 这些是特殊的JavaScript正则表达式对象。
括号匹配捕获组,在上面的示例中有三个。
此解决方案归功于Adaneo。
答案 1 :(得分:3)
遵循alpha bravo的想法,如果要添加所有多个字符,可以添加选项列表:
([\*|\`|\~|\_]+)\s*(.*?)\s*([\*|\`|\~|\_]+)
并将其替换为$1$2$3
答案 2 :(得分:2)