【发布时间】:2021-11-11 02:26:11
【问题描述】:
这是我要匹配的字符串和句子(提取)。
let pigs = "\X The animal 0000 I really dig \X Above all others is the pig. 222 \X Pigs are noble. Pigs are clever 3333, \X Pigs are 5555 courteous.\X However, Now and then, to break this 6666 rule, \X One meets 7777 a pig who is a fool. \X"
" Pigs are 5555 courteous."
这是我的代码的两个版本。当我在各种正则表达式检查网站上签到时,它会给出所需的匹配。但是当我在浏览器控制台中运行时,它给出了 null。我有最新的 Chrome 版本。为什么浏览器控制台不在这里输出匹配?
pigs.match(/(?<=\\X)[^\\X]*5555[^\\X]*(?=\\X)/g);
pigs.match(/(?:\\X)[^\\X]*5555[^\\X]*(?:\\X)/g);
【问题讨论】:
-
如果你想让
pigs字符串中的反斜杠变成文字,你需要转义它们。 -
试试
console.log(pigs),你会看到\X变成了X。 -
为什么浏览器会自动消除每个字符串中的反斜杠?
-
反斜杠是转义前缀。它要么开始一个转义序列(如
\n换行),要么生成下一个字符。
标签: javascript regex string-matching positive-lookbehind