CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoLISP 开发指南

wcmatch(AutoLISP)

2023-1-5 15:30| 发布者: admin| 查看: 414| 评论: 0|来自: AutoCAD

摘要: 对字符串执行通配符模式匹配

对字符串执行通配符模式匹配

支持的平台:视窗和 Mac OS

签名

(wcmatch str pattern)
str

类型:字符串

要比较的文本值。比较区分大小写,因此大写和小写字符必须匹配。

模式

类型:字符串

str 匹配的模式。该模式可以包含通配符表中显示的通配符模式匹配字符。您可以在模式中使用逗号来输入多个模式条件。仅比较str模式的前 500 个字符(大约);除此之外的任何内容都将被忽略。

返回值

类型:字符串或零

如果str模式匹配,则返回;否则,返回。wcmatchTwcmatchnil

通配符

字符

定义

#(磅)

匹配任何单个数字。

@(在)

匹配任何单个字母字符。

.(期间)

匹配任何单个非字母数字字符。

*(星号)

匹配任何字符序列(包括空字符序列),并且可以在搜索模式中的任何位置使用:开头、中间或结尾。

?(问号)

匹配任何单个字符。

~(波浪号)

如果它是模式中的第一个字符,则它匹配除模式之外的任何字符。

[...]

匹配所包含的任何一个字符。

[~...]

匹配未括起来的任何单个字符。

- (连字符)

在方括号内用于指定单个字符的范围。

,(逗号)

分隔两个模式。

`(反向引用)

转义特殊字符(按字面意思读取下一个字符)。

言论

这两个参数都可以是带引号的字符串或字符串变量。将 AutoLISP 函数返回的变量和值用于str模式值是有效的。

若要测试字符串中的通配符,可以使用单个反引号 字符 () 对该字符进行转义转义表示单反引号后面的字符不读作通配符;它以其面值进行比较。例如,要在字符串 “” 中的任意位置搜索逗号,请输入以下内容:`Name

(wcmatch "Name" "*`,*")
nil

Both the C and AutoLISP programming languages use the backslash (\) as an escape character, so you need two backslashes (\\) to produce one backslash in a string. To test for a backslash character anywhere in “”, use the following function call: Name

(wcmatch "Name" "*`\\*")
nil

括在方括号 (. . .) 中的所有字符都按字面意思读取,因此无需转义它们,但以下情况除外:波浪号字符 (~) 仅在不是第一个带括号的字符(如 in)时才按字面读取;否则,它被读作否定字符,这意味着它应该匹配除波浪号后面的字符(如 in)之外的所有字符。短划线字符 (-) 仅在第一个或最后一个括号字符(如 inor)或前导波浪号后(如 in)时,才会从字面上读取。否则,将在括号内使用短划线字符 (-) 来指定特定字符的值范围。该范围仅适用于单个字符、somatches,,, 和 ,并匹配任何单个大写字母。[]"[A~BC]"wcmatch"[~ABC]""[-ABC]""[ABC-]""[~-ABC]""STR[1-38]"STR1STR2STR3STR8"[A-Z]"

如果右括号字符 () 是第一个带括号的字符,或者它跟在前导波浪号(作为 inor)后面,也会从字面上读取。]"[ ]ABC]""[~]ABC]"

注意:由于 AutoLISP 的未来版本中可能会添加其他通配符,因此最好转义模式中的所有非字母数字字符以确保向上兼容性。

例子

例子

以下命令测试字符串以查看它是否以字符开头N:

(wcmatch "Name" "N*")
T

下面的示例执行三个比较。如果满足三个模式条件中的任何一个,则返回。测试是:wcmatchT

  • 字符串是否包含三个字符?
  • 字符串不包含 an?m
  • 字符串是否以字母 “” 开头?N

如果满足三个模式条件中的任何一个,则返回:wcmatchT

(wcmatch "Name" "???,~*m*,N*")
T

在此示例中,满足最后一个条件,因此返回。wcmatchT


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 12:46

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部