2

F# で次のコードを書きました。

let regexSymbol = new Regex(@"\b\}|\.\b")
if (Regex.IsMatch(".", regexSymbol.ToString())) then
    printfn "symbol0"

しかし、それは何も印刷しません..

正規表現が正確に「}」または「。」である文字列のみを表すようにしたいと思います。、同じ行に後続または先行する文字はありません。どのように変更すればよいか知っている人はいますか?

ありがとう.. :)

4

2 に答える 2

2

そのように文字列を一致させる必要がある場合は、文字列の先頭と文字列の末尾のアンカーを使用します。

open System.Text.RegularExpressions
let regexSymbol = new Regex("^[}.]$") // in this case verbatim is not required
if (regexSymbol.IsMatch(".")) then printfn "Matched! :)" else printfn "Not matched... :("
if (regexSymbol.IsMatch("}.")) then printfn "Matched! :)" else printfn "Not matched... :("

これにより、最初の行に「Matched」が出力され、2 行目に「Not Matched」が出力されます。

しかし、この文字列が「}」と「.」に等しいかどうかを確認するだけでよいのではないでしょうか? 申し訳ありませんが、F# の調査を開始したところです。

于 2012-06-24T00:07:06.183 に答える
1

問題は、「。」単語境界とは見なされません。\b" は 'A"' に一致しますが、'."' には一致しません。

于 2012-06-23T23:57:21.760 に答える