我正在使用Delphi,我需要创建一个正则表达式来捕获公式中的变量名和函数名。名称以字母[a-zA-Z]
开头,后跟任意字符[a-zA-Z0-9]
。
正则表达式是这样的:\b[a-zA-Z]\w+\b
它工作正常,唯一的问题是它还捕获以$
或#
或点(.
)开头的变量名,而我不希望这样。
答案 0 :(得分:2)
假设只需要避免以$
#
或(.
)开头的变量,可以尝试这样的操作。
\b(?<!(#|\$|\.))[a-zA-Z]\w+\b
这将使用您的第一个正则表达式,并将匹配所有不带有前缀$
或#
或(.
)的单词。
答案 1 :(得分:0)
您可能会在后面使用否定性断言来断言之前的字符不是非空格字符:
(?<!\S)[a-zA-Z]\w+
https://services.gradle.org/distributions/gradle-4.4-all.zip
请注意,\w
还会与下划线匹配,而不仅仅是[a-zA-Z0-9]