首页 > 解决方案 > TDIPerlRegEx 区分大小写匹配的正则表达式

问题描述

如何为 TDIPerlRegEx 创建正则表达式以进行区分大小写的匹配?我试过 (?i-) 但我仍然发现以小字符开头的单词。

我想创建正则表达式来查找两个单词。第一个单词必须以第一个字符大写开头,第二个单词的最后两个字符是'th'。

TDIPerlRegEx.Create{$IFNDEF DI_No_RegEx_Component}(nil){$ENDIF};
  RegEx_Seek_1.MatchPattern := '(*UCP)(?m)(?i-)(?<=\W)[A-Z]\w{2,12}\W\w{3,12}th(?=\W)';

我获得的结果包括第一个字符小写。

文本示例:首先,把你与生俱来的权利卖给我。你呼吸的气味像苹果。“智慧在没有”。你的大地如同黄铜。大卫进来了。愤怒带来了刀剑的惩罚。

现在要匹配的项目是'Wisdom crieth' 和'David cometh'。

标签: regexdelphi

解决方案


你有一个错字,禁用不区分大小写的方法是(?-i),不是(?i-)

TDIPerlRegEx.Create{$IFNDEF DI_No_RegEx_Component}(nil){$ENDIF};
  RegEx_Seek_1.MatchPattern := '(*UCP)(?m)(?-i)(?<=\W)[A-Z]\w{2,12}\W\w{3,12}th(?=\W)';

推荐阅读