我是在in设计器(另一个水晶报告类型程序)中这样做的.
我的问题有两部分..。
我试图从字符串中“提取”字符串的一部分。我需要的字符串总是在主字符串的中间。但永远不会处于同样的位置。描述和长度总是会改变的。
下面是一个例子。
描述(这是我正在“提取”的主要字符串):
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执行此操作
发布于 2012-07-12 17:09:52
对于第2部分-描述,我提出了以下内容(只修改最后一行代码):
再次感谢李·蒂克特
感谢你的帮助!
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)));发布于 2012-07-12 17:48:21
您可以使用正则表达式:
// {@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库。
https://stackoverflow.com/questions/11455433
复制相似问题