【发布时间】:2013-05-03 15:14:12
【问题描述】:
我有一些疑问,例如:
"$Prefex" SELECT column_name(s) FROM table_name WHERE pal pal pal LIMIT "$Suffix"
这些查询有不需要的前缀和后缀。我使用正则表达式来摆脱前缀,使用非贪婪的.*?SELECT。
我找不到使用非贪婪修饰符向后搜索来消除后缀的方法。
理想情况下,我希望消除从行尾到“LIMIT”的第一个匹配项的模式。
如果我使用 LIMIT.*? 它不会匹配任何东西,而如果我只使用 LIMIT.* 它是贪婪的,我想避免这种情况。
我使用 Ruby 作为我的语言。
这是查询示例:
SELECT DISTINCT $val1 $val2 WHERE { $val1 a foaf:val1.$val1 foaf:val2 $val2. FILTER regex($val2 , "CITY LIMITED" , "i")} LIMIT 20&output=xml HTTP/1.1" 200 604 "-" "Python-urllib/2.6" "GB" "65465666654626426246524"
这是所需的输出:
SELECT DISTINCT $val1 $val2 WHERE { $val1 a foaf:val1.$val1 foaf:val2 $val2. FILTER regex($val2 , "CITY LIMITED" , "i")}
【问题讨论】:
-
你能举一个输入和期望输出的例子吗?
-
@melwil 我更新了问题,谢谢。
-
仅供参考 - rubular.com 是一个方便的正则表达式工具
标签: ruby regex non-greedy