2017-02-23 4 views
1

私はおよそ1300イケア製品のリストを持っている - これはそれらのいくつかの例です:マーク言葉

läkt 
bigarrå 
bekväm 
blixt 
block 
blom 
bärbar 
bärby 
bästis 
bådalen 
bågvik 

私は「特別」含有するものをマークするために正規表現を使用しようとしています文字 - 例えば小文字のzへの単純な小文字のA以外のもの - など:

[^a-z] 

しかし、それはすべての単語を選択します。

läkt 
bigarrå 
bekväm 
bärbar 
bärby 
bästis 
bådalen 
bågvik 

は、私はこの1つを試してみました。

PHPをちょうど使っていたら、ctype_alnumの機能を使ってもできますが、ここではTextPadまたはNotePad ++のテキストエディタを使用しています。

RegExを使用してこれを達成する方法はありますか?

+0

メモ帳でうまく動作します。++、おそらく更新する必要がありますか? – Nullman

+1

*すべての*マーク機能を使用していますか? ['^ a-z \ r \ n]' –

+0

あなたの返信をありがとう。私はNotepad ++ 7.2.2で試してみましたが、それでもすべての行をマークしています。 @WiktorStribiżew - ありがとう - あなたの提案は、TextPadのトリックでした。 – 4532066

答えて

1

[^a-z]パターンは、CRまたはLFシンボルと一致することができ、その事実により、TextPad/Notepad ++はの各行にというマークを付けることができます。あなたがする必要があるのは否定文字クラスに\r\nを追加することです:これは、それが小文字のASCII文字以外の任意の文字に一致するだけので、あなたの特定のデータで動作すること

[^a-z\r\n] 

注意、キャリッジリターンCRとラインフィードLFシンボル。

任意の文字が、メモ帳で使用することができ小文字のASCII文字を++マッチする正規表現:

(?![a-z])\pL 

(あなたも(?![a-z])\p{L}を使用することができます)。ここで

(?![a-z])は、それがどんな小文字のASCII文字と一致しないことができるように(オプションを有効にする必要がありますマッチケースに注意してください)任意の文字に一致する\pLパターンを制限します。

enter image description here

1

これは、C#ですが、イケア

Regex.Match(value.ToString()、 "[àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ]")を取得する必要があります。

1

ないあなたが使用しているが、ここではJavascriptがありますどの言語を確認してください。

まず、配列を配列に分割し、一致する単語をフィルタリングします。

`läkt 
bigarrå 
bekväm 
blixt 
block 
blom 
bärbar 
bärby 
bästis 
bådalen 
bågvik`.split(` 
`).filter(w => /[^a-z]/.test(w)) 

// => ["läkt", "bigarrå", "bekväm", "bärbar", "bärby", "bästis", "bådalen", "bågvik"]