简单的正则表达问题

时间:2010-10-18 10:06:23

标签: regex

我正在为我下面解释的一个特殊要求寻找正则表达式。我相信这可能非常简单&正则表达专家的基础。

匹配一行中一个或多个单词的正则表达式。考虑这一行:

QRYNUMB0007 = SELECT EMPLOYEEID, FIRSTNAME, LASTNAME, EMAIL, CITY, STATE, COUNTRY FROM EMPLOYEE WHERE EMPLOYEEID = ?

在这种情况下,例如,我想知道我正在搜索/寻找 SELECT FIRSTNAME EMPLOYEE 可在同一行中使用。在这种情况下,行中单词的出现顺序并不重要,但所有3个单词应该出现在同一行中。

2 个答案:

答案 0 :(得分:2)

如果您想选择其中任何一个

/select|firstname|employee/i

如果你想真正找到所有这些

/select/i && /firstname/i && /employee/i

而且,根据您的语言,事情可以更简单,例如Python

STRING=mystring.lower()
if "select" in STRING and "firstname" in STRING and "employee" in STRING:
    print "...."

答案 1 :(得分:1)

尝试alternation

SELECT|FIRSTNAME|EMPLOYEE

<击>

好吧,正如其他人所说,正则表达式并不真正支持AND运算符。由于您在vim,因此您无法在语言级别访问该运算符。

您可以尝试排列:

/SELECT.*FIRSTNAME.*EMPLOYEE|SELECT.*EMPLOYEE.*FIRSTNAME/

或者,也可以避免匹配EMPLOYEEFIRSTNAME

之类的内容
/SELECT.+FIRSTNAME.+EMPLOYEE|SELECT.+EMPLOYEE.+FIRSTNAME/