regex - 正则表达式负后向帮助
问题描述
我可以使用可能是一个简单的正则表达式的手。我需要匹配包含birth_dt_tm
前面没有的字符串的行datetimezoneformat(
。我尝试使用否定的lookbehind,但示例文本中的两行都匹配。
示例行:
dob = datetimezoneformat(p.birth_dt_tm, p.birth_tz, "MM/DD/YYYY")
dob2 = format(p.birth_dt_tm, "MM/DD/YYYY;;d")
我尝试了什么:
^.*(?<!datetimezoneformat\().*birth_dt_tm
使用 PCRE,这将匹配从行首到birth_dt_tm
. 我只是希望它与第二行匹配。
请参阅此处的示例 - https://regex101.com/r/lv4nGK/1
解决方案
PCRE 中的 Lookbehind 不支持动态长度匹配。您可以使用 PCRE 动词(*SKIP)(*FAIL)
来跳过和失败您不希望在结果中使用交替的匹配,并在 RHS 上使用您想要匹配的内容:
\bdatetimezoneformat\([^)]*\bbirth_dt_tm\b(*SKIP)(*F)|\bbirth_dt_tm\b
推荐阅读
- node.js - mongoDB watch() 集合
- javascript - 我提交时的html表单没有调用函数密码验证代码有什么问题吗?
- c++ - 通过重新排列数组元素来最大化特定子数组的总和?
- python - 将 Facenet .npz 训练模型转换为 tensorflow-lite (tflite) 格式
- python - Python计算器不添加数字。为什么?
- javascript - 从文件输入迭代文件
- reactjs - 单击按钮后如何防止在按钮旁边呈现新组件
- jquery - Bootstrap DateTimePicker 'dp.change' 返回旧值
- haskell - Haskell Lambda 帮助 - 创建应用程序函数
- python-3.x - k-means 聚类映射