用于删除不需要的字符模式的正则表达式
RegEx to remove unwanted character patterns
我需要从字符串中删除一些字符。但是,有一定的限制。
示例短语:
有两个“@planes”在@它们的构建方式上几乎相同。
我需要找到模式 '@
和下一个模式 '
。这些字符需要从字符串中删除。但是,如果只有 '
或只有 @
,它们应该保持不变。为澄清起见,该字符串可以包含一个或多个单词,这些单词在开头用“@”括起来,在结尾用一个“”括起来。需要删除封闭字符。
删除字符后应该如下所示:
有两架飞机在@它们的建造方式上几乎相同。
另一个示例短语:
“@computer”有时可能非常“@expensive in price”,但在其他情况下它可能是“@cheap or even free”。
删除字符后,它应该是这样的:
一台电脑的价格有时可能非常昂贵,但在其他情况下它可能是@便宜甚至免费的。
正则表达式应该适用于 JavaScript。
/'@([a-z0-9\s]+)'/gi
适合你吗?
"A '@computer' can sometimes be very '@expensive in price' but in other cases it can be @cheap or even free'.".replace(/'@([a-z0-9\s]+)'/gi, '');
您可以查看 https://regex101.com/ 以获得有关正则表达式本身的详细解释。
这个应该可以满足您的需求:/'@([^']*)'/g
- 寻找
'@
(对应部分:'@
)
- 它获取每个字符,即不是
'
并将它们分组(对应部分:([^']*)
)
- 它将
'
附加到找到的替换匹配项中
str.replace(regex, '');
中的 $1 引用在步骤 2
中创建的组
示例:
const regex = new RegExp("'@([^']*)'","g");
const testStr = "A '@computer' can sometimes be very '@expensive in price' but in other cases it can be @cheap or even free'.";
const result = testStr.replace(regex, '');
console.log(result);
我需要从字符串中删除一些字符。但是,有一定的限制。
示例短语:
有两个“@planes”在@它们的构建方式上几乎相同。
我需要找到模式 '@
和下一个模式 '
。这些字符需要从字符串中删除。但是,如果只有 '
或只有 @
,它们应该保持不变。为澄清起见,该字符串可以包含一个或多个单词,这些单词在开头用“@”括起来,在结尾用一个“”括起来。需要删除封闭字符。
删除字符后应该如下所示:
有两架飞机在@它们的建造方式上几乎相同。
另一个示例短语:
“@computer”有时可能非常“@expensive in price”,但在其他情况下它可能是“@cheap or even free”。
删除字符后,它应该是这样的:
一台电脑的价格有时可能非常昂贵,但在其他情况下它可能是@便宜甚至免费的。
正则表达式应该适用于 JavaScript。
/'@([a-z0-9\s]+)'/gi
适合你吗?
"A '@computer' can sometimes be very '@expensive in price' but in other cases it can be @cheap or even free'.".replace(/'@([a-z0-9\s]+)'/gi, '');
您可以查看 https://regex101.com/ 以获得有关正则表达式本身的详细解释。
这个应该可以满足您的需求:/'@([^']*)'/g
- 寻找
'@
(对应部分:'@
) - 它获取每个字符,即不是
'
并将它们分组(对应部分:([^']*)
) - 它将
'
附加到找到的替换匹配项中
str.replace(regex, '');
中的 $1 引用在步骤 2
示例:
const regex = new RegExp("'@([^']*)'","g");
const testStr = "A '@computer' can sometimes be very '@expensive in price' but in other cases it can be @cheap or even free'.";
const result = testStr.replace(regex, '');
console.log(result);