与不以#,$,

时间:2018-09-25 13:04:55

标签: regex delphi

我正在使用Delphi,我需要创建一个正则表达式来捕获公式中的变量名和函数名。名称以字母[a-zA-Z]开头,后跟任意字符[a-zA-Z0-9]

正则表达式是这样的:\b[a-zA-Z]\w+\b

它工作正常,唯一的问题是它还捕获以$#或点(.)开头的变量名,而我不希望这样。

2 个答案:

答案 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]