回答:
[^a-zA-Z\d\s:]
\d
そして\s
、Perlの拡張機能であり、通常、次のような古いツールではサポートされていません。grep
、sed
、tr
、lex
、など
これはそれを行うはずです:
[^a-zA-Z\d\s:]
アクセント付きのラテン文字(たとえば、àÑ)を通常の文字として扱いたい場合(つまり、それらも一致させないようにする場合)、適切なUnicode範囲(\ u00C0- \ u00FF)を正規表現に含める必要があるため、このようになります:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^
次のものを否定するa-zA-Z
大文字と小文字を照合します\d
数字に一致\s
空白に一致します(スペースのみを一致させたい場合は、これをスペースに置き換えます):
コロンに一致\u00C0-\u00FF
アクセント付きラテン文字のUnicode範囲に一致します。nb。Unicode範囲の一致はすべての正規表現エンジンで機能するわけではありませんが、上記は確かにJavascriptで機能します(このペンで見られるように) Codepenので)。
nb2。アンダースコアの一致について気にしない場合a-zA-Z\d
は\w
、で置き換えることができます。これは、文字、数字、アンダースコアに一致します。
これを試して:
[^a-zA-Z0-9 :]
JavaScriptの例:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
オンラインの例をご覧ください。
英数字、空白、「_」は使用できません。
var reg = /[^\w\s)]|[_]/g;
どのRegexBuddyの ChromeのJavaScriptでも機能しませんよると。しかし、すでにその例がここにあります。
この主な部分は次のとおりです。
\p{L}
表す\p{L}
か、\p{Letter}
任意のlanguage.`からの手紙のいずれかの種類
完全な正規表現自体: [^\w\d\s:\p{L}]
/[^a-zA-Z0-9\s\:]*/