我使用的是grepWin Windows工具,我想找到任何可能包含“开始交易”,空格或“ st_message_index”的字符
然后提交;

它应该匹配这样的东西:

enter code heredeclare continue handler;
start transaction;

select  n.id as messageIndexId

from    st_message_index

commit;

end main $$`


并且不匹配这样的东西

declare continue handler;
start transaction;

select  n.id as messageIndexId

   from employee

commit;

end main $$


这些都不起作用:

transaction[\w\s]+audittrail[\w\s]+commit

start transaction;.*[\w\s]+st_message_index.*[\w\s]+commit

.*[\w\s]+.*start transaction;.*[\w\s]+.*st_message_index.*[\w\s]+.*commit;.*[\w\s]+.*


如果在mysql查询中找到使用正则表达式的任何解决方案,请找到适用于我并解决我的问题的过程定义。

就像是

    select name
    FROM mysql.proc
    WHERE body regexp 'transaction[\w\s]+audittrail[\w\s]+commit';

最佳答案

这个正则表达式会给我我想要的。感谢@asherber提供到regex101.com网站的链接

start transaction[\w\s=;\(\),.*]*audittrail[\w\s=;\(\),.*]*commit

关于mysql - grepWin中的正则表达式可匹配三个指定的单词,这些单词之间用文本块中的任何内容分隔,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49239610/

10-15 00:12