正向后视正则表达式的替代方案
Alternative to positive lookbehind regex
我正在使用 Prism.js 进行语法高亮显示,我有一个用于检测 Kotlin 中缀函数 (?<=\w\s)(\w+)(?=\s\w)
(https://regex101.com/r/wVSO6G/1) 的正则表达式,它使用正向前视和正向后视,但是这在破坏我的整个网站的 Safari 浏览器上不起作用。
我看到了涉及使用匹配器的替代方案,但我没有那个选项,因为我只能提供正则表达式,例如:
"infix": [
{
pattern: /(?<=\w\s)(\w+)(?=\s\w)/,
},
],
是否有适用于 Safari 的替代方案?
如果您只能提供一个正则表达式并且突出显示整个匹配值,则无法模仿当前的lookbehind 模式。你能想到的最好的是像这样的正则表达式
/\b\s(\w+)(?=\s\w)/
这也会突出显示前导空格(除非有一个选项可以只突出显示某些组值)。
如果您可以调整内部代码,则可以使用组替换:找到 /(\w\s)(\w+)(?=\s\w)/
并替换为 <span class="highlight"></span>
。
我正在使用 Prism.js 进行语法高亮显示,我有一个用于检测 Kotlin 中缀函数 (?<=\w\s)(\w+)(?=\s\w)
(https://regex101.com/r/wVSO6G/1) 的正则表达式,它使用正向前视和正向后视,但是这在破坏我的整个网站的 Safari 浏览器上不起作用。
我看到了涉及使用匹配器的替代方案,但我没有那个选项,因为我只能提供正则表达式,例如:
"infix": [
{
pattern: /(?<=\w\s)(\w+)(?=\s\w)/,
},
],
是否有适用于 Safari 的替代方案?
如果您只能提供一个正则表达式并且突出显示整个匹配值,则无法模仿当前的lookbehind 模式。你能想到的最好的是像这样的正则表达式
/\b\s(\w+)(?=\s\w)/
这也会突出显示前导空格(除非有一个选项可以只突出显示某些组值)。
如果您可以调整内部代码,则可以使用组替换:找到 /(\w\s)(\w+)(?=\s\w)/
并替换为 <span class="highlight"></span>
。