首页 > 解决方案 > 匹配表达式以使用正则表达式检索第一个函数名称

问题描述

我有一个下面的字符串

TimeStampDiff(SQL_TSI_DAY,  TimeStampAdd(SQL_TSI_DAY, 2,  "function_test"."ORDERS"."ORDER_DATE" ) ,  "function_test"."ORDERS"."ORDER_DATE" ) 

这与我在https://pythex.org/中测试的正则表达式模式不匹配

^\s*([\w]+)\s*\(.*?\)$

但是我有一个完全相似的表达式,如下所示,它与我的正则表达式模式匹配

TimeStampDiff(SQL_TSI_DAY,  TimeStampAdd(SQL_TSI_DAY, 2,  "function_test"."ORDERS"."ORDER_DATE" ) ,  "function_test"."ORDERS"."ORDER_DATE" )

我已经用相同的正则表达式模式测试了两个表达式,但第一个不匹配,第二个匹配。请问是什么原因啊!!

标签: pythonregex

解决方案


第一个字符串末尾有一个空格字符。由于正则表达式模式搜索结束括号作为字符串的最后一个字符,因此它产生不匹配。


推荐阅读