Regexp:多线匹配(和)之间的任何东西;

时间:2017-01-10 20:56:50

标签: regex

这是我目前的设置: (image showing regexr-highlighted strings)

我的正则表达式匹配为Skript\.register(effect|expression|event|condition)\((.*)\)\;

基本上,我希望匹配源代码文件中以Skript.registerwhatever.(开头并以);结尾的所有方法,但问题是代码可以多行。如果我将(.*)更改为([\s\S]*),则会完全破坏并匹配所有内容,直到最后);

2 个答案:

答案 0 :(得分:0)

您需要lazy quanitfier:*?

\(([\s\S]*?)\)

如果你的字符串包含嵌套的括号:

(?'parens'\((?:[^\(]|\g'parens')*?\))

答案 1 :(得分:0)

您需要在正则表达式中转义括号,因为它们是保留符号。试试\(.*\)