javascript中的正则表达式匹配
我想使用正则表达式在JavaScript中匹配以下术语javascript中的正则表达式匹配,javascript,regex,Javascript,Regex,我想使用正则表达式在JavaScript中匹配以下术语 String = 'abc AND def AND igk AND lmn' 要匹配的条件: 第一个和之前和之后的单词 例如,在上面的字符串中,匹配部分将是:abc和def 我想用JavaScript来做。所以我会打电话给你 string.match(/regex to use/) 并将其分配给一个var 有什么建议吗 编辑: 字符串的形式如下: string = 'AND abc'; string = 'abc AND
String = 'abc AND def AND igk AND lmn'
要匹配的条件:
第一个和之前和之后的单词
例如,在上面的字符串中,匹配部分将是:abc和def
我想用JavaScript来做。所以我会打电话给你
string.match(/regex to use/)
并将其分配给一个var
有什么建议吗
编辑:
字符串的形式如下:
string = 'AND abc';
string = 'abc AND';
string = 'abc def AND igk lmn';
string = 'abc def AND';
string = 'AND igk lmn';
感谢您在这方面的帮助。您可以尝试以下正则表达式:
/(\w+\s+AND\s+\w+)/
编辑(阅读上次更新后):如果左右术语是可选的,请使用以下正则表达式:
/(?: (\w+) \s+)? AND (?: \s+ (\w+))?/x
您可以尝试以下正则表达式:
/(\w+\s+AND\s+\w+)/
编辑(阅读上次更新后):如果左右术语是可选的,请使用以下正则表达式:
/(?: (\w+) \s+)? AND (?: \s+ (\w+))?/x
对Igor版本的一点改进:
var m = str.match (/(\w+)\s+AND\s+(\w+)/);
// word before AND in m[1], word after AND in m[2]
自动提取这两个单词。对Igor的版本进行了轻微改进:
var m = str.match (/(\w+)\s+AND\s+(\w+)/);
// word before AND in m[1], word after AND in m[2]
自动提取两个单词。您需要删除^
,否则如果在第一个和
之前有多个单词,则此操作将失败。我已进行编辑;只要你不使用/g
修饰符,这个正则表达式就会找到第一个出现的和
加上它周围的两个单词(前提是“单词”被定义为“ASCII字母数字字符序列”)。谢谢,汤姆。我放置^
,因为在OP上次编辑之前还不清楚到底需要匹配什么。感谢:0为了匹配我的案例,我使用它作为:/(\w*\sAND\s*\w)/您需要删除^
,否则如果在第一个和
之前有多个单词,则此操作将失败。我已完成编辑;只要你不使用/g
修饰符,这个正则表达式就会找到第一个出现的和
加上它周围的两个单词(前提是“单词”被定义为“ASCII字母数字字符序列”)。谢谢,汤姆。我之所以放置^
,是因为在OP最后一次编辑之前不清楚需要匹配什么。谢谢:0为了匹配我的案例,我将其用作:/(\w*\sAND\s*\w)/所以前后的单词是可选的?或者只有两个词都存在时才应该匹配?是否有一个字符串'和'
(如果有,会发生什么情况)?如果您的字符串是'abc'
(完全没有),您是否有兴趣匹配abc
(没有)?如果我之前或之后没有单词,并且没有问题,我将变为空白。如果只是现在,我的两个字都将是空白的。因此,单词是可选的,可以出现也可以不出现。我将在之后验证它们,并传递null。那么before/after是可选的吗?或者只有两个词都存在时才应该匹配?是否有一个字符串'和'
(如果有,会发生什么情况)?如果您的字符串是'abc'
(完全没有),您是否有兴趣匹配abc
(没有)?如果我之前或之后没有单词,并且没有问题,我将变为空白。如果只是现在,我的两个字都将是空白的。因此,单词是可选的,可以出现也可以不出现。我将在之后验证它们,并已通过null。我将其用作:/(\w*)\sAND\s*(\w)/。谢谢,我将其用作:/(\w*)\sAND\s*(\w)/。非常感谢。