ブラケットと末尾の空白のみを削除するための適切な正規表現は何でしょうか?
例:"Hello [world] - what is this?"
に変換され"Hello - what is this?"
ます。
ブラケットと末尾の空白のみを削除するための適切な正規表現は何でしょうか?
例:"Hello [world] - what is this?"
に変換され"Hello - what is this?"
ます。
次の正規表現を使用します。括弧とその末尾の空白を削除します。
/(\s\s)*(\s(?=\[.*?\]\s))*\[.*?\](\s\s)*/g
使用法:
var testStr = "Hello [world] - what is this?";
console.log(testStr.replace(/(\s\s)*(\s(?=\[.*?\]\s))*\[.*?\](\s\s)*/g, ""));
入力/出力:
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world] - what is this? Output: Hello - what is this?
Input: Hello [world]- what is this? Output: Hello - what is this?
Input: Hello [world]- what is this? Output: Hello - what is this?
Input: Hello[world] - what is this? Output: Hello - what is this?
Input: Hello[world] - what is this? Output: Hello - what is this?
Input: Hello[world]- what is this? Output: Hello- what is this?
括弧で囲まれたものと末尾の空白の間で表現を交互にさせることができます:
str.replace(/\[[^\]]*\]|\s+$/g, '')
/g
修飾子は、最初の出現のみ (デフォルト) ではなく、すべての出現に一致するために使用されます。
アップデート
の前にスペースがある場合、そのスペースは削除されず、代替の代わりに[hello]
別のスペースが必要になります。.replace()
str.replace(/\[[^\]]*\]/g, '').replace(/\s+$/, '');
str.replace(/\[.+?\]\s*/g,'');
次のように実行できます。
var result = mystring.replace(/^\s*\[[^]]+]\s*|\s*\[[^]]+]\s*$|(\s)\s*\[[^]]+]\s*/g, '$1');