SQL对象的正则表达式

时间:2016-04-18 08:43:47

标签: regex vbscript

我有一个文本文件,我想用前缀CATS捕获单词... 我无法理解。 我的文本文件示例是: -

CATS...NAME_VALUATION_GEO Name_Valuation
where exists ( select 
CATS...REPORT_EVAL_NAME Report_Name
where  ( REPORT_EVAL_NAME.REPORT_EVAL_REQUEST_ID = '454' and REPORT_EVAL_NAME.INTERNAL_NAME_ID = NAME_VALUATION_GEO.OUTER_NAME_ID )  ) ) NAME_Valuation_GEO
) NAME_Valuation_GEO,
CATS...NAME_VAL_BIST_LD_PNG T2

结果应该是: -

NAME_VALUATION_GEO
NAME_VAL_BIST_LD_PNG
REPORT_EVAL_NAME

修改

我想出了/CATS\.\.\.(\w+)/g 但它返回: -

CATS...NAME_VALUATION_GEO
CATS...NAME_VAL_BIST_LD_PNG
CATS...REPORT_EVAL_NAME

任何帮助返回

NAME_VALUATION_GEO
NAME_VAL_BIST_LD_PNG
REPORT_EVAL_NAME

如果重要的话,我正在使用vb-script。

2 个答案:

答案 0 :(得分:1)

据我所知,你需要一个正则表达式来捕获CATS...之后的第一个单词? 这个正则表达式就是这么做的。

/^CATS\.\.\.(\w+)/$1/

  1. ^CATS:仅当字符串以CATS
  2. 开头时才匹配
  3. \.\.\.:后跟三个点,需要转义
  4. (\w+):捕获任何单词字符,至少一个
  5. /$1/:捕获组的结果存储在$1

答案 1 :(得分:1)

尝试"CATS\.\.\.([^]]+\s)"

我相信它会按照您的要求返回,即

NAME_VALUATION_GEO
NAME_VAL_BIST_LD_PNG
REPORT_EVAL_NAME

修改

CATS\.\.\.(\w+)

对于大多数首次失败的情况,这个新表达式是正确和准确的。