0

次のようなクエリがあります。

"$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")}
4

2 に答える 2

0

入力が次のようなものであると仮定します。

"$Prefex" SELECT column_name(s) FROM table_name WHERE pal pal pal LIMIT "$Suffix"

次に、この正規表現は、LIMIT に続くテキストを含むクエリを返します。最初の".

/(SELECT.*?LIMIT.*?\}).*?/
于 2013-05-03T15:20:20.457 に答える