Regex 正则表达式删除引号之外的所有字母实例
我有一串文字:Regex 正则表达式删除引号之外的所有字母实例,regex,Regex,我有一串文字: \n new"test \n aaaa" \n ta \n `this is a \n newline that should be kept` 我的目标是匹配反勾(`)、引号(“)或单引号(')之外的所有\n。根据另一个问题(),我将使用的正向前瞻切换为反向前瞻,现在匹配引号(“)之外的所有换行符。然而,当我试图忽略单个和反向刻度时,它不起作用 我做错了什么 工作报价: 使用 text.replace(/(“[^”\]*(?:\.[^”\]*)*“\\'[
\n new"test \n aaaa" \n ta \n `this is a \n newline that should be kept`
我的目标是匹配反勾(`)、引号(“)或单引号(')之外的所有\n
。根据另一个问题(),我将使用的正向前瞻切换为反向前瞻,现在匹配引号(“)之外的所有换行符。然而,当我试图忽略单个和反向刻度时,它不起作用
我做错了什么
工作报价:
使用
text.replace(/(“[^”\]*(?:\.[^”\]*)*“\\'[^'\]*(?:\.\.^'\]*)*“[^'\]*(?:\.\.^'\]*)*”。\\n/g,$1')
看
解释
--------------------------------------------------------------------------------
(组和捕获到\1:
--------------------------------------------------------------------------------
" '"'
--------------------------------------------------------------------------------
[^“\]*除以下字符外的任何字符:“”、“\\”(0或
更多次(与最多金额匹配)
(可能的)
--------------------------------------------------------------------------------
(?:组,但不捕获(0或更多)
次数(与最大金额匹配)
(可能的):
--------------------------------------------------------------------------------
\\ '\'
--------------------------------------------------------------------------------
.除以下字符以外的任何字符\n
--------------------------------------------------------------------------------
[^“\]*除以下字符外的任何字符:“”、“\\”(0或
更多次(与最多金额匹配)
(可能的)
--------------------------------------------------------------------------------
)*分组结束
--------------------------------------------------------------------------------
" '"'
--------------------------------------------------------------------------------
|或
--------------------------------------------------------------------------------
' '\''
--------------------------------------------------------------------------------
[^'\]*除:“”、'\\'(0或
更多次(与最多金额匹配)
(可能的)
--------------------------------------------------------------------------------
(?:组,但不捕获(0或更多)
次数(与最大金额匹配)
(可能的):
--------------------------------------------------------------------------------
\\ '\'
--------------------------------------------------------------------------------
.除以下字符以外的任何字符\n
--------------------------------------------------------------------------------
[^'\]*除:“”、'\\'(0或
更多次(与最多金额匹配)
(可能的)
--------------------------------------------------------------------------------
)*分组结束
--------------------------------------------------------------------------------
' '\''
--------------------------------------------------------------------------------
|或
--------------------------------------------------------------------------------
` '`'
--------------------------------------------------------------------------------
[^`\]*除以下字符以外的任何字符:`、'\\'(0或
更多次(与最多金额匹配)
(可能的)
--------------------------------------------------------------------------------
(?:组,但不捕获(0或更多)
次数(与最大金额匹配)
(可能的):
--------------------------------------------------------------------------------
\\ '\'
--------------------------------------------------------------------------------
.除以下字符以外的任何字符\n
--------------------------------------------------------------------------------
[^`\]*除以下字符以外的任何字符:`、'\\'(0或
更多次(与最多金额匹配)
(可能的)
--------------------------------------------------------------------------------
)*分组结束
--------------------------------------------------------------------------------
` '`'
--------------------------------------------------------------------------------
)结束\1
--------------------------------------------------------------------------------
|或
--------------------------------------------------------------------------------
\\ '\'
--------------------------------------------------------------------------------
不
JavaScript代码:
const text=String.raw`\nnew“测试\naaaa\\\n”\nta\n\`这是一条应保留的\nnewline\`\n'这是一个\nnew测试'\n`
console.log(text.replace(/(“[^”\]*(?:\.[^”\]*)*“\\'[^'\]*(?:\.\.^'\]*)*“[^\\\]*”(?:\.\.\\\\]*)\\\\\\\\\\\\\\\\\\\]*(?:\.\.\\\.\\\\\\\\\\\\\\\\\\]*)\\\\\\\\\\\\\\\\\\\\\\\\
text.replace(/(“[^”\]*(?:\.[^”\]*)*“\\'[^'\]*(?:\.\.^'\]*)*“[^'\]*(?:\.\.^'\]*)*”。\\n/g,$1')