From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



字符串的模式匹配(Match Pattern)函数对于某些特殊字符无效



主要软件:
主要软件版本: 1.0
主要软件修正版本: N/A
次要软件: N/A

问题: 我有一个字符串包括一些特殊的字符,比如句号。我想要使用模式匹配函数来搜索这些字符。当我对包括这些特殊字符的字符串使用模式匹配函数的话,只能匹配到字符串的第一个字符,并且函数返回字符串剩余的字符。例如对于“hello.txt”这个字符,我想要模式匹配“.”这个符号,但是函数只能返回“h”作为匹配的字符串,而返回“ello.txt”作为匹配字符之后的子字符串,对于匹配字符前的字符串返回的是空字符串。我期望该函数能够返回“hello”作为匹配字符之前的子字符串,“.”作为匹配字符串,“txt”作为匹配字符之后的子字符串。

解答: 模式匹配VI可以接受正则表达式作为待匹配的模式。使用正则表达式的话,“.”会作为可以匹配任意字符的特殊字符。这也就是为什么,“.”可以匹配“h”字符。如果您需要匹配“.”字符,您需要在使用“\.”而不是“.”作为待匹配字符。类似的,如果您需要匹配任何的特殊字符,您需要在特殊字符前使用“\”符号来进行匹配搜索。

以下的符号都会被认为是特殊字符。

“.”,“?”,“\”,“^”,“[”,“]”,“+”,“*”,“$”,“-”,“~”

注意事项: 但使用十六进制的模式匹配的时候,依然会产生这个问题。如果待搜索的子字符串是两个十六进制字符,并且正好是以上特殊字符的ACSII值,会产生同样的问题。但是,在这些字符之前加上“\”可以解决问题。

相关链接: MSDN VBScript User's Guide: Introduction to Regular Expressions

附件:





报告日期: 04/09/2003
最近更新: 08/27/2010
文档编号: 2W8D5VDS