捕获字符串,直到在正则表达式中第一个插入符号?

时间:2009-01-07 00:23:06

标签: regex

我目前正在使用遗留系统,而且很多工作涉及拆分分隔字符串并针对某些规则进行测试。

使用此字符串,我如何在后引用和搜索条件中返回“Active”,在它到达第一个插入符号时停止(^)?:

Active^20080505^900^LT^100

可以通过包含在此“(.+)”的正则表达式中来完成吗?我问的原因是实际的正则表达式“(.+)”在数据库中被定义为切断这些消息,并且可以从前端系统设置它们的相关规则。内容可以是任何内容(在这种情况下为“活动”),这就是为什么在这种情况下使用“。+”。

规则:括号中的插入符号不能显示,因为它也会存储在数据库字段中,并且在另一个系统字段的其他位置定义。

如果你有一个比“(.+)更好的建议”会很高兴听到它。

提前致谢。

3 个答案:

答案 0 :(得分:5)

(.+?)\^

应该抢到第一个^

如果您必须包含(.+)无修改,可以使用:

(.+?)\^(.+)

第一个反向引用仍然是正确的,你可以忽略第二个。

答案 1 :(得分:1)

正则表达式在这里真的太过分了。

只需取字符串的前n个字符,其中n是第一个插入符号的位置。

伪代码:

InputString.Left(InputString.IndexOf("^"))

答案 2 :(得分:0)

^([^\^]+)

如果你的RE库不支持非贪婪,这应该有效。

相关问题