【问题标题】:How to match exactly a word with a colon before it, ignoring case?如何完全匹配一个带有冒号的单词,忽略大小写?
【发布时间】:2022-08-20 05:03:25
【问题描述】:

我需要构建一个 SQL 准备应用程序,它应该替换脚本中的参数。

每个参数都应该完全匹配,但忽略大小写。

我试图实现的是,将要替换的参数的名称以冒号字符开头,但我的正则表达式不匹配。

我在用着:

\'\\b\' + _Parameter + \'\\b\'; 

_Parameter 变量的实际值为\':value\',不带引号。

我该如何解决?

  • 使用查询参数而不是替换文本要安全得多……有什么你不想这样做的原因吗?例如,在 FireDac 中,您可以将查询或命令参数设置为 TFParam 对象,并按名称或位置查找它们。使用参数您不必担心您插入到查询中的文本是有效的 SQL,它还可以防止 SQL 注入攻击。
  • 嗨,罗布。谢谢你的回复。是的,我知道这一点。我不使用声明的字段,并且脚本在运行时放在一起。只是更喜欢这样做,特别是对于这个应用程序。安全不是问题。
  • 使用工具(在线或本地)调试您的正则表达式。从第一个字符串文字中删除\\:,因为它位于错误的位置(在单词结尾之前)并且分号已经在变量值中。
  • 嗨,布莱恩:/bText/b 绕过冒号。我已经测试过了。但我必须放弃 /: 因为它什么也没做。问题是如何以将文本与前导冒号匹配的方式构建表达式
  • 没有提示?我搜索了这个超过 4 小时。不公平的投票。

标签: delphi pascal freepascal


【解决方案1】:

完毕!

(:值\b)

假设我希望匹配文本“:值”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 1970-01-01
    • 2019-04-04
    • 2010-10-17
    相关资源
    最近更新 更多