Excelシート式でセル参照を検証します。シート名を含むExcelセル参照を検証するにはどうすればよいですか?
有効な文字列:
Sheet1!A1
'Sheet!!'!A1
私は次の式を使用していますが、それは動作しません。
"^='?[^[]/\*]*'?!+[A-Z]+[0-9]+$"
Excelシート式でセル参照を検証します。シート名を含むExcelセル参照を検証するにはどうすればよいですか?
有効な文字列:
Sheet1!A1
'Sheet!!'!A1
私は次の式を使用していますが、それは動作しません。
"^='?[^[]/\*]*'?!+[A-Z]+[0-9]+$"
他にもいくつか問題があります。 ?
そのこれは動作するはず今
^='?[^/\[]*]*'?!{1}[A-Z]+[0-9]+$
いいえ、そうではありません。 '' @ '^ ='?[^/\ [] *] * '?! {1} [A-Z] + [0-9] + $ ")'はfalseです。 –
"="有効な文字列は "= Sheet1!A1"が見つかりませんでした。 – meetjaydeep
シート名に*文字が含まれていれば、上記は正しくキャッチされません。ここでは、それを得るための更新された正規表現があります '^ = '?[^/\ [] \ *] *' ?! {1} [AZ] + [0-9] + $' – chrsmrtn
作業: を=(\がs | \ワット)+ [A-ZA-Z] + \ D +
Regex re = new Regex(@"^=('?[^']+'?|[^!]+)![A-Z]+[0-9]+$");
bool isOk = re.IsMatch("=Sheet1!A1");
変更! [^!]
には、シートの名前には不要な文字を入力します。
='<anything>'!XN
または=<anything>!XN
の形式と一致します(Xは少なくとも1つの大文字で、Nは少なくとも1桁です)。
編集: 私はOPの開始時に=
文字を望んでいるか、いない場合は(オリジナルのポストはそれを持っていた)ことを確認していません。そうでない場合は、正規表現の先頭から=
文字を削除します。
特にあなたのために試しました両方の式とそれは 'true'と評価されます。 彼の投稿は今編集されています。彼は、最初から平等キャラクターを削除しました。意図したものかどうかは分かりません。 –
ああ、心配しないでください。大丈夫だよ。 +1。どういうわけか私は正しく貼り付けることができませんでした:( –
あなたのコードを投稿できますか? –
正規表現には、「regex codezを送信してください」と「regex not working」という2つの主要な種類の質問があります。これを第3の種類に変えましょう。有効な入力と一致しないのですか?無効な入力を受け入れていますか?どれ? 「うまくいきません」は問題の説明ではありません。 –
二重引用符は何ですか?彼らは正規表現の一部ですか?それらは文字区切り文字ですか?文字列区切り文字の場合は、通常の文字列の代わりに逐語文字列を使用する必要があります。パスや正規表現を書くときには、最初から逐語的な文字列を考えることさえありません。 .NET regexesをテストするために、JavaScript regexバリデータを使用してはいけません。正規表現は、プラットフォーム/言語/ライブラリに応じてさまざまな味があります。 .NET regexesを検証するには、.NETを使用する必要があります。 [LinqPad](http://www.linqpad.net/)にお試しください。 –