2017-01-17 17 views
-1

句読点以外の文字は削除しても、文字列内の章を追跡する視覚化を作成しようとしています。regexと一致しないものをすべて削除します

これまでのところ、私は私が保存したいものと一致するには、以下の正規表現を作成するために達成:

(\CAPÍTULO ([0-9]+))|([\\?.,:;!¡¿。、·*\(\)\[\]\-–\_«»\'\'\/@#$&\%\^=+\|<>\"])

にはどうすれば文字列からテキストの残りの部分を置き換えることができますか?

+0

入力と出力の例を挙げることができますか? –

+0

これらの句読点記号を保存したいのですか、または英数字以外の文字をすべて保存しますか?保持されている句読点の文字の位置を保持するか、句読点以外の文字をスペースで置換するか、または結果を縮小しますか? –

答えて

0

あなたは簡単に、たとえばこれを試して、replace機能を使用することができます。

var str = "whatever, string, you like!"; 
 
var newStr = str.replace(/\w/g, ' '); 
 

 
console.log(newStr);

+0

これは要件を満たしていません – jsdario

+0

@jsdarioあなたの要件に合うように答えを更新しました –

+0

これは、彼が保持したいと思う 'CAPITULO 1'を削除します。 –

0

はこれを試してみてください:

var r = /(CAPÍTULO [0-9]+|[\\?.,:;!¡¿。、·*\(\)\[\]\-–\_«»\'\'\/@#$&\%\^=+\|<>\"])|(.)/g 
var s = "[email protected]#123^&*XYZ;"; 
var p = s.replace(r, "$1"); 

// Result: "[email protected]#^&*;" 

まず、グループ1のすべての文字にマッチしますすべての不一致が第2のグループに分類される。グループ番号(すなわち、$ 1)の結果が見つからない場合は空であるため、これは最初のグループの一致を除くすべてを効果的に消去します。

あなたはこれを行うことができ、他の文字の配置保持する必要がある場合:あなたは最後に余分な""を処理する必要が

var r = /(CAPÍTULO [0-9]+|[\\?.,:;!¡¿。、·*\(\)\[\]\-–\_«»\'\'\/@#$&\%\^=+\|<>\"])|(.)/g 
var s = "[email protected]#123^&*XYZ;"; 
s.replace(r, "$1,").split(","); 

// Result: ["", "", "", "!", "@", "#", "", "", "", "^", "&", "*", "", "", "", ";", ""] 

を。 ;)これは、何も置き換えずに(つまり、"$1"が不一致の場合は""になります)、コンマ(または本当に必要な文字)がその位置を追跡するためです。 s.replace(r, "$1~").split("~");なども使用できます。

+0

これは彼が保持したいと思っている 'CAPITULO 1'部分を削除しているようです。 –

+0

今すぐお試しください - 元の投稿に '\ C'を入れました;) –

0

は、句読点以外の文字を削除しますが、文字列内の章を追跡します。

これを行うには、古典的な方法は、あなたがを維持する必要はありませんCAPITULO [0-9]+)を維持したい、OR(|)他のことを行うものに一致させることである - この場合には、句読点以外の文字(\w)を入力してキャプチャし、後者を空の文字列に置き換えます。

const regexp = /CAPITULO [0-9]+|(\w)/g; 
 

 
const input = "CAPITULO 22 .#(nonpunctuation characters $%&*'"; 
 

 
const processed = input.replace(regexp, (match, match1) => match1 ? '' : match); 
 

 
console.log(processed);

あなたが本当に維持するために、すべての句読点を一覧表示したい場合は、の配置を保持したい場合は、

[^\\?.,:;!¡¿。、·*()[\]\-–_«»'\/@#$&\%\^=+\|<>\"] 

で上記で\wを置き換えます残りの文字を入力してから、置換機能を

(match, match1) => match1 ? ' ' : match 
に変更します
+0

彼は保存する文字の正規表現を持っています。また、キャラクターの位置を保存したいだけでなく、削除することもできます。 –

関連する問題