首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >水晶语法-在字符串中“提取”字符串的一部分

水晶语法-在字符串中“提取”字符串的一部分
EN

Stack Overflow用户
提问于 2012-07-12 15:38:06
回答 2查看 7.8K关注 0票数 0

我是在in设计器(另一个水晶报告类型程序)中这样做的.

我的问题有两部分..。

我试图从字符串中“提取”字符串的一部分。我需要的字符串总是在主字符串的中间。但永远不会处于同样的位置。描述和长度总是会改变的。

下面是一个例子。

描述(这是我正在“提取”的主要字符串):

代码语言:javascript
复制
    The Name of my Book Here CD CTN1234-5678-9 2-1 CD Carton

第1部分

我试图提取的字符串是CTN1234-5678-9.,Part#这将永远是14个字符长(3个字母,9个数字和2个破折号)。

第2部分

我只需要描述部分。这是书的标题,从左开始到Part#(CTN1234-5678-9)。所以我只需要,我的书的名字,在这里CD

在“公式编辑器”中为我的公式字段@PartNumber和@Description执行此操作

EN

回答 2

Stack Overflow用户

发布于 2012-07-12 17:09:52

对于第2部分-描述,我提出了以下内容(只修改最后一行代码):

再次感谢李·蒂克特

感谢你的帮助!

代码语言:javascript
复制
local stringVar myString := 'The Name of my Book Here CD CTN1234-5678-9 2-1 CD Carton';
local numberVar myPosition := length(myString);

while not(mid(myString, myPosition - 14, 14) like '???????-????-?') and myPosition > 14
 do myPosition := myPosition - 1;

uppercase(trim(left(myString, myPosition - 15)));
票数 0
EN

Stack Overflow用户

发布于 2012-07-12 17:48:21

您可以使用正则表达式:

代码语言:javascript
复制
// {@Book Title}
// ([A-Z]{3}[0-9]{4}-[0-9]{4}-[0-9]{1}) - matches the part #
// (.*?) - a non-greedy captured group
// (?= ) - a look-ahead
RegexMatch( "(.*?)(?=([A-Z]{3}[0-9]{4}-[0-9]{4}-[0-9]{1}))" )

你需要水晶报告Regex库

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11455433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档