【发布时间】:2021-04-06 21:56:54
【问题描述】:
在我从事的 Web 项目开发的早期,我创建了这个正则表达式 /(?<!\\)\w?\$.+?(?<!\\)\$/,它旨在匹配 $ any text here$,只要第一个和最后一个 $ 前面没有 \。
这里有几个例子https://regex101.com/r/Y1Uml9/1/
在我意识到 iOS Safari 和 Chrome 不支持后视之前,正则表达式可以完美运行。我尝试自己修改正则表达式,但我的基本正则表达式技能无法生成有效的。
关于如何转换正则表达式使其在 iOS 上运行有什么建议吗?
【问题讨论】:
-
应该是
/(?:^|[^\\])(?:\\\\)*\$([^\\$]*(?:\\[\w\W][^\\$]*)*)\$/g(demo)。 -
@WiktorStribiżew 感谢工作几乎完美。 This 还匹配第一个
$之前的空格或字符(您可以从 regex101 的最后一行看到这一点)。你可以修改它,使它不会在$之前捕获那个字符或空格吗? -
不,没有必要“不抓住那个角色”。您无需担心这一点。您需要担心的是:您是 1) 提取匹配项还是 2) 替换匹配项?还是 3) 分裂?
-
我正在用其他东西替换匹配项 - 整个
$match here$。这就是为什么我需要在放置替换字符串之前保留空格或任何字符,否则生成的文本会看起来很奇怪 -
那么,像this?
标签: javascript regex