我目前正在使用遗留系统,而且很多工作涉及拆分分隔字符串并针对某些规则进行测试。
使用此字符串,我如何在后引用和搜索条件中返回“Active”,在它到达第一个插入符号时停止(^)?:
Active^20080505^900^LT^100
可以通过包含在此“(.+)
”的正则表达式中来完成吗?我问的原因是实际的正则表达式“(.+)
”在数据库中被定义为切断这些消息,并且可以从前端系统设置它们的相关规则。内容可以是任何内容(在这种情况下为“活动”),这就是为什么在这种情况下使用“。+”。
规则:括号中的插入符号不能显示,因为它也会存储在数据库字段中,并且在另一个系统字段的其他位置定义。
如果你有一个比“(.+)
更好的建议”会很高兴听到它。
提前致谢。
答案 0 :(得分:5)
(.+?)\^
应该抢到第一个^
如果您必须包含(.+)
无修改,可以使用:
(.+?)\^(.+)
第一个反向引用仍然是正确的,你可以忽略第二个。
答案 1 :(得分:1)
正则表达式在这里真的太过分了。
只需取字符串的前n个字符,其中n是第一个插入符号的位置。
伪代码:
InputString.Left(InputString.IndexOf("^"))
答案 2 :(得分:0)
^([^\^]+)
如果你的RE库不支持非贪婪,这应该有效。