EDA365电子工程师网
标题:
如何查找带“.”的元字符呢?
[打印本页]
作者:
yneda
时间:
2012-8-14 16:19
标题:
如何查找带“.”的元字符呢?
本帖最后由 yneda 于 2012-8-14 16:21 编辑
我做字符串查找匹配的时候,发现如果匹配字符串本身带有“.”会出错,做不到allegro自带的那个查找功能样子。请问下,“.”换成“\.”行不行呢?但按字面意思,是忽略这个“.”如果就是要查找这个“.”呢,求指点下,谢谢!
;code
when( input_net_len == 0
axlFormListDeleteAll(my_find_form "input_net_name_field")
axlFormSetField(my_find_form "input_net_name_field" "*")
filterd_net_list = nets_list
)
when( input_net_len > 0
regex = ""
for( i 1 input_net_len
item_char = substring(input_net_name_field i 1)
when(item_char == "*" item_char = ".*" )
regex = sprintf(nil "%s%s" regex item_char)
)
regex = sprintf(nil "%s%s%s" "^" regex "$")
filterd_net_list = rexMatchList(regex nets_list)
)
作者:
betamelody
时间:
2012-8-14 16:27
目前skill的正则表达式中"."用来匹配任意单个字符
以下代码希望可以帮到你
Skill > rexMatchp("[.]" "abc.123")
t
Skill > rexMatchp("[.]" "abc123")
nil
复制代码
作者:
yneda
时间:
2012-8-14 16:39
本帖最后由 yneda 于 2012-8-14 16:40 编辑
版主在线,回复神速,多谢了!
也就是我在我的代码:
when(item_char == "*" item_char = ".*" )后面插入一行
when(item_char == "." item_char = "[.]" )就可以是吧?,我刚才想到如改成这样行不行呢,有什么不同
when(item_char == "." item_char = "\\." )
谢谢!
作者:
yneda
时间:
2012-8-14 16:41
我在调试的时候发现,改成when(item_char == "." item_char = "\\." ),如果网络名是:5.5V,也可以找到了。
作者:
betamelody
时间:
2012-8-14 16:59
没有什么不同,在中括号内的就表示匹配这个字符或字符范围,在中括号之外的字符可能作为指代之用
欢迎光临 EDA365电子工程师网 (https://bbs.elecnest.cn/)
Powered by Discuz! X3.2