正则表达式删除撇号

时间:2009-08-02 21:36:32

标签: regex

我输入的文字包含'喜欢这篇文章'弗兰克的卷轴电影评论“

如何摆脱'

我试过了

.replace (/\'/ig, '');
.replace ('\'', '');

但似乎'现在想要删除...

我在想'可能编码的utf-8或其他东西

任何想法

7 个答案:

答案 0 :(得分:5)

正则表达式[^\w ]将匹配任何非字母数字或空格的内容。

您可以使用它来确保删除所有撇号/引号/等,即使使用Unicode完成 - 尽管问题中没有足够的信息来确定这是否可以接受。

答案 1 :(得分:5)

这是迟到的回复,但总结了答案的质量答案,代码解决了不同的做法。

检测撇号时不需要使用转义序列。正确的正则表达式是

/'+/g

这将从正则表达式中删除所有撇号,如果出现'或''或'''之类的事件,等等。

以下是代码段,它只从字符串中删除一个撇号实例。

使用JavasScript

var name = document.getElementById('name').value;
name = name.replace(/'/,'')
alert('The result string ' + name);

PHP

$subject ="Mik's sub";
$resplace = "";
$search ="'";
$new_str =  str_replace($search, $replace, $subject);
echo "New Subject : $new_str";

使用JavaScript的Unicode

var regex = /\u0027/;
name = name.replace(regex,'')

答案 2 :(得分:2)

假设您正在使用Java,您是否尝试过.replaceAll(“'”,“”)?适合我。

答案 3 :(得分:1)

'不应该被转义。试着赤身裸体,没有反斜杠。

答案 4 :(得分:0)

如果您只想在结果中包含字母和空格,则可以始终匹配其中之一的任何字符,例如......

.replace (/[^a-zA-Z ]+/ig, '');

您当然也可以添加您希望允许的任何其他字符到正则表达式。

答案 5 :(得分:0)

撇号不是元字符。你不应该逃脱它。

答案 6 :(得分:0)

如果您希望选择性地删除(或用空格代替)撇号,而不是英尺英制符号',请使用:

val apostropheRegex = """(?<=[a-zA-Z])'(?=[a-zA-Z])"""
"john's carpet is 5' x 8'".replaceAll(apostropheRegex, "XXX") // johnXXXs carpet is 5' x 8'

它的意思是“替换两个字母之间的所有符号'。