2016-05-17 11 views
3

質問に問題があります。変数を検索する必要があります。文字列に.がある場合は、その特定の文字を_に置き換える必要があります。 私は空のスポットと-を置き換えることができますが、私はドットを置き換えるのに問題があります。SPARQLを "。"に置き換えます。 〜 "_"

BIND(replace(?input,".","_") AS ?output) . 

また、私は基本的に結果が、何が同じである、/.//.\.\\.を使用しようとしています。

Lexical error. Encountered: "<" <40>, after: "replace" 

ありがとうございます。

答えて

5

\\.でドットをエスケープします。またSTRで文字列に変換したい場合があります:

BIND(REPLACE(STR(?input),"\\.","_") AS ?output) .

ます。また、(ここで、あなたがドットをエスケープする必要はありません)を置き換える同じとのすべての文字を置き換えることができます。

BIND(REPLACE(STR(?input),"[. -]","_") AS ?output) .

REPLACEは、第2引数として正規表現をとります。そのため、最初のドットでエスケープする必要があります。 2番目の例では、ドットが文字クラスの内側にあるため、エスケープは必要ありません。

関連する問題