【发布时间】:2016-01-05 09:39:40
【问题描述】:
我正在解析一个查询,其中“AND”运算符是隐式的(我的意思是当 2 个单词或 2 个括号或 1 个单词和一个括号之间有空格时,我应该在那里放置一个 'AND')。当我得到 ') (' 时,它很容易匹配和替换,但是在面对 'wordexample (' 或 'wordexample1 wordexample2' 时我遇到了问题。考虑到 'OR' 运算符不是隐式的,所以我只需要解析较低大小写字母单词。
一个例子:
a='abc def (ghi) OR jkl'
应该看起来像:amodif='abc AND def AND (ghi) OR jkl'
我已经尝试过使用 re 库:
print re.sub('[a-z] \\(', '[a-z] AND \\(',a)
但是它用 [a-z] 改变了单词的最后一个字母。无论如何要保留匹配表达式的一部分(在这种情况下是单词的最后一个字母)与re?提前致谢
【问题讨论】:
-
正在尝试获取类似
([a-z]) ([(a-z])的内容(替换为\1 AND \2)?