3

英数字以外の文字のみを検索し、「-」を含まないスペースのみを検索したい...

しかし、これは機能していません:

REGEXP '^[a-zA-Z0-9/-:space:]*'

この正規表現は、次のデータで有効です。

 'Test Cinema'
  'AMERICANII AU TALENT - SEZONUL 5, EPISODUL 12'

これらの文字を見つけたくありません。次のようなフィールドを見つけたいです。

'Test Item;?!'
'LOCAL KOMBAT "FIERBE BULGARIA"'

他の文字でのみ有効な正規表現を作成するにはどうすればよいですか。

4

3 に答える 3

6

^ が否定になるには、括弧内にある必要があります。正規表現の先頭に配置された ^ は、文字列の先頭で一致する必要があることを意味します。

これを試して、空でなく英数字以外のすべての文字列 (スペースと - を含む) に一致させます。

^[^a-zA-Z0-9 -]+$
于 2012-08-15T15:06:31.890 に答える
4
[^a-zA-Z0-9 -]*

それはあなたが望むものだと思います。

-の末尾に を配置することで[]、正規表現はリテラル を意味することを認識-し、 でエスケープする必要がなくなります\

編集:文字列全体に一致させるには、これを使用します:

^[^a-zA-Z0-9 -]*$

^$正規表現を文字列の最初と最後に固定するために使用されます。

于 2012-08-15T15:05:41.103 に答える
1

推測する必要があるため、テストが一致する必要があるものと一致しないものを明確に定義したリストがあると便利です。

試す

1. ^.*?[^A-Za-z0-9 -]+[A-Za-z0-9 -]*$
2. ^.*?[^A-Za-z0-9, -]+[A-Za-z0-9, -]*$

1 件の一致(コンマのため最初の一致)

AMERICANII AU TALENT - SEZONUL 5, EPISODUL 12
Test Item;?!
LOCAL KOMBAT "FIERBE BULGARIA"

ただし、Test Cinema には一致しません

2試合

Test Item;?!
LOCAL KOMBAT "FIERBE BULGARIA" 

でも似合わない

Test Cinema
AMERICANII AU TALENT - SEZONUL 5, EPISODUL 12

ここで2番目のもので遊ぶことができ ますサンプルで機能させるために改行を無効にする必要がありましたが、一致するかどうかを確認するには、行ごとに1つのテストを追加するだけです

于 2012-08-15T16:04:23.703 に答える