gpt4 book ai didi

javascript - 将 php 和 python 中的 RegEx 语法转换为 JS

转载 作者:太空宇宙 更新时间:2023-11-03 16:07:32 25 4
gpt4 key购买 nike

我有这个正则表达式语法:“(?<=[a-z])-(?=[a-z])”

它捕获 2 个小写字母之间的破折号。在下面的示例中,捕获了第二个破折号:

克雷尼察-兹德鲁伊,ul。乌兹德罗乔瓦

不幸的是我不能在 JS 中使用 <= 。我的最终目标是使用 RegEx 替换删除连字符。

最佳答案

在我看来,您需要删除小写字母之间的连字符。

使用

var s = "Krynica-Zdrój, ul. Uzdro-jowa";
var res = s.replace(/([a-z])-(?=[a-z])/g, "$1");
console.log(res);

请注意,第一个lookbehind变成了一个简单的捕获组,第二个lookahead可以使用,因为 - 可能,如果存在连字符的单个小写字母 block - 它将能够处理重叠的匹配。

详细信息:

  • ([a-z]) - 第 1 组捕获小写 ASCII 字母
  • - - 连字符
  • (?=[a-z]) - 后面跟着一个不添加到结果中的小写 ASCII 字母-/g - 全局修饰符,搜索该模式的所有出现
  • "$1" - 替换模式仅包含对存储在组 1 缓冲区中的值的反向引用。

VBA 示例代码:

Sub RemoveExtraHyphens()
Dim s As String
Dim reg As New regexp

reg.pattern = "([a-z])-(?=[a-z])"
reg.Global = True

s = "Krynica-Zdroj, ul. Uzdro-jowa"
Debug.Print reg.Replace(s, "$1")
End Sub

enter image description here

关于javascript - 将 php 和 python 中的 RegEx 语法转换为 JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39639589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com