好的,
我不知道是否可以写这个正则表达式,所以我将首先寻求帮助 - 到目前为止我没有成功。
源字符串:
,convert(varchar(8000), lt.text) as reason
期望的匹配:
convert(varchar(8000), lt.text)
假设
这是我开始使用的正则表达式:
\(.+\)
谢谢
答案 0 :(得分:1)
HACK ALERT:我通过抓住最内层实例并用占位符替换它来解决,然后递归处理直到没有更多匹配...
答案 1 :(得分:0)
使用以下正则表达式:
^ \,(小于?IMP> [\ S \ S] *)作为
答案 2 :(得分:0)
^,(.+\)) as [a-z]+$
我在[a-z] +中包含了“原因”。
如果你有的话,我建议你使用RightToLeft选项。它会加速正则表达式。如果您的语言需要,请记得逃避\
。
答案 3 :(得分:0)
我在这里假设PCRE语法。如果你可以保证字符“as”没有显示在parens中,那么这样的东西应该有效:
{,(.*) as }
如果你不能保证“as”不会出现在parens中,你需要定义一些其他条件。例如,如果该行总是在“as”之后结束,那么这样的东西就可以工作:
{,(.*) as \S+$}
或者您可以使用真正的解析器,它可以保留上下文(parens的数量)。