如何创建一个正则表达式来查找用"""
或'''
包装的文本,例如:
hello """
long text here,
e.g. a private SSH key
"""
this is a name for testing
'''
this is another multi-line
stuff.
'''
我想得到这样的输出:
hello
this is a name for testing
将"""
或'''
中的所有文本替换为空字符串。
使用"""|'''
作为分隔符(结束时使用1
反向引用),非贪婪匹配(.*?
)和s
(点全)和g
(全局)标志。
使用trim()
删除前后空白。
const str = `hello """
long text here,
e.g. a private SSH key
"""
this is a name for testing
'''
this is another multi-line
stuff.
'''`
console.log(str.replace(/("""|''').*?1/gs, "").trim());
我们可以尝试针对所有多行引号的regex替换。我们将使用点all模式来确保匹配发生在换行符之间。
var input = `
hello """
long text here,
e.g. a private SSH key
"""
this is a name for testing
'''
this is another multi-line
stuff.
'''`;
var output = input.replace(/""".*?"""|'''.*?'''/sg, '').trim();
console.log(output);