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

标签 javascript php python regex

我有这个正则表达式语法:“(?<=[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/

相关文章:

php - 使用类型列定义用户关系时的高效使用

python - Django 中的 MaxMind GeoIP2 单实例

javascript - 为什么这些日期不同?

javascript - 如何咕噜监视子文件夹中的文件?

javascript - 为什么 Canvas 的实现速度比 Pixi.JS 快?

php - curl namelookup_time 为 10 秒

javascript - Vuelidate requiredIf 不适用于复选框

javascript - 从ajax函数从数据库中检索数据值

python - 属性错误 : 'NoneType' object has no attribute 'indim'

python - 是否有支持 AWS ElastiCache 的自动发现功能的 Python Memcached 库?