正規表現を検索していますが、すべての要素を改行なしで置き換えています。文字、数字、ドット '。'、疑問符 '?'壊れていない空間 ''があります。例外を含む正規表現
たとえば、文字列'[email protected]!.'
は'hello world .'
になります。 誰かが私にそれをやる方法を私に説明してもらえますか?私は正規表現の仕組みをほとんど知らないので、
ありがとうございました!
正規表現を検索していますが、すべての要素を改行なしで置き換えています。文字、数字、ドット '。'、疑問符 '?'壊れていない空間 ''があります。例外を含む正規表現
たとえば、文字列'[email protected]!.'
は'hello world .'
になります。 誰かが私にそれをやる方法を私に説明してもらえますか?私は正規表現の仕組みをほとんど知らないので、
ありがとうございました!
質問のHTMLタグが付いているので、置き換えを行うにはjavascriptが必要ですか?もしそうなら、これは動作するはずです:
result = subject.replace(/[^\w\d.? ]/g, " ");
[]
「は、以下のいずれかの文字を、しかし^
が最初の文字であるとき、選択が否定される\w
手段 『を意味する。単語文字』、および\d
手段 『の数字を』ので、英語に翻訳し、このパターンのような何か読んでいました:。
語の文字、数字、ドット、疑問符またはノーブレークスペースではないすべての文字を
g
パターンは、そのパターンを意味した後、グローバルであり、最初のものだけでなく、すべてのマッチを置き換える必要があります。
正規表現を検索する:あなたは、テキストエディタを使用している場合
'\ d'は既に' \ w'の一部ですが、OPが置き換えたいと思うアンダースコアもそうです。これは、Unicode文字/数字を文字/数字として扱うこともできません。 –
'result = subject.replace(/ [^ \ w。?] | _/g、" ");' – Dummy
、あなたはそうのようにそれを行うことができ、単一のスペース:
[^a-zA-Z0-9.? ]
と交換してください。
デモ:https://regex101.com/r/PzbadC/1
[^a-zA-Z0-9.? ]
- 否定文字クラスは、a to z
、A to Z
、0 to 9
、.
、?
、およびスペースから文字以外にマッチします。
文字、数字、 '。'、疑問符 '?'壊れていない空間 ''があります。
これは正規表現を与える:( |[a-zA-Z0-9.?]+)
しかし、あなたは、あなたが使用する必要があり、これを否定したいので:(?! )[^a-zA-Z0-9.?]+
:
(! ) : is a negative lookahead, that makes sure we have not
[^a-zA-Z0-9.?]+ : is a character class that matches 1 or more character that are not in the class.
var str = 'hello @ world!.';
str = str.replace(/(?! )[^a-zA-Z0-9.?]+/g, " ");
console.log(str);
どのようなプログラミング言語ですか?正規表現はパターンに過ぎず、置換は言語に依存します。 – Lucero