![](/img/trans.png)
[英]Regex to match all words, inclusive of punctuation and unicode characters. No white space
[英]Match words separated by punctuation characters using regex
示例字符串:
这是一个例子
我想匹配:这是一个例子。
我尝试了这个:
<script type="text/javascript">
var string="this!is.an?example";
var pattern=/^\W/g;
alert(string.match(pattern));
</script>
尝试这个:
var words = "this!is.an?example".split(/[!.?,;:'"-]/);
这将创建一个包含每个单词的字符串数组。
如果要将其转换为单个字符串,并且单词之间用空格分隔,则可以调用words.join(" ")
。
编辑 :您也可以在\\W
( str.split(/\\W/)
)上拆分,但是它可能比您想要的字符更多。
我不明白您为什么要显式匹配 ,但是如果您的目标是去除所有标点符号,则可以这样做:
var words = "this!is.an?example".split(/\W/);
words = words.join(' ');
\\W
将匹配除字母,数字和下划线以外的任何字符。
如果还要在下划线上进行分割,请使用以下命令:
var words = "this!is.an?example_with|underscore".split(/\W|_/);
如果您只想匹配:
(\w|\.|!|\?)+
如果要将所有标点符号替换为空格,可以执行以下操作:
var str = str.replaceAll([^A-Za-z0-9]," ");
这将所有非字母,数字替换为空格。
/^\\W/g
表示匹配第一个字符不是字母或数字的字符串
而字符串"this!is.an?example"
显然不是以非字母或非数字开头的。
请记住, ^
表示整个字符串以开头,而不是您要匹配的字符串开头。 还要记住,大写\\ W是所有与小\\ w不匹配的东西。 有了这个提醒,您可能想要的是:
var string="this!is.an?example";
var pattern=/(\w+)/g; // parens for capturing
alert(string.match(pattern).join(' ')); // if you don't join,
// some browsers will simply
// print "[object Object]"
// or something like it
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.