Functions.StrExtract 方法 | |
-- todo --
在两个分隔符之间检索字符串。
命名空间:
XSharp.VFP
程序集:
XSharp.VFP (在 XSharp.VFP.dll 中) 版本:2.22 GA
语法 FUNCTION StrExtract(
cSearchExpression,
cBeginDelim,
cEndDelim,
nOccurrence,
nFlag
) AS STRING CLIPPER
[ClipperCallingConventionAttribute(new string[] { ... })]
public static string StrExtract(
__Usual cSearchExpression = default,
__Usual cBeginDelim = default,
__Usual cEndDelim = default,
__Usual nOccurrence = default,
__Usual nFlag = default
)
查看代码参数
- cSearchExpression (Optional)
- 类型:__Usual
指定要搜索的字符串。
- cBeginDelim (Optional)
- 类型:__Usual
指定cSearchExpression开始的分隔字符。
- cEndDelim (Optional)
- 类型:__Usual
指定cSearchExpression结束的分隔字符。
- nOccurrence (Optional)
- 类型:__Usual
指定从cSearchExpression中cBeginDelim的第几次出现开始提取。
- nFlag (Optional)
- 类型:__Usual
指定对搜索施加的控制类型。
在nFlag中指定的数字提供了一个位值,根据下表确定选项:
位 | 值(可累加) | 描述 |
---|
0 | 1 | 不区分大小写搜索 |
1 | 2 |
不需要结束分隔符。指定当搜索未找到cEndDelim时,
返回从cBeginDelim位置开始的cSearchExpression内容。
|
2 | 4 | 在返回的表达式中包含分隔符。 |
返回值
类型:
String
字符型或变长二进制型。
结果数据类型由第一个参数的数据类型决定。
备注
默认情况下,搜索区分大小写,且必须找到分隔符(未指定nFlag值)。
如果cBeginDelim为空字符串,搜索将从cSearchExpression的开头进行,直到找到第一个cEndDelim。
如果cEndDelim为空字符串,StrExtract()将返回从cBeginDelim的第nOccurrence次出现到cSearchExpression结尾的字符串。
示例 1Clear
2Set PATH TO (HOME(2) + 'Data\')
3Use customer
4?cursortoxml(0,"x",1,0,2)
5?x
6xmlproc(x,0)
7PROCEDURE xmlproc(x as String, nLev as Integer) as void
8LOCAL cTagName, cContents, mterm
9DO WHILE .t.
10cTagName = StrExtract(x,"<",">")
11IF LEN(cTagName) = 0
12??' ',x
13EXIT
14ENDIF
15IF RIGHT(cTagName,1) = '/'
16cTagName = LEFT(cTagName, LEN(cTagName)-1)
17cContents=""
18mterm = "<"+cTagName+"/>"
19ELSE
20mterm = "</"+cTagName+">"
21cContents = StrExtract(x,"<"+cTagName+">", mterm,1,2)
22ENDIF
23?REPLICATE(" ",nLev),nLev+1,PADR(cTagName,20)
24xmlproc(cContents, nLev+1)
25x = StrExtract(x, mterm)
26ENDDO
参见