Regex赢得'不要像预期的那样匹配单词
Regex won't match words as expected
我正试图使用XRegExp根据以下标准测试字符串是否为有效单词:
- 字符串以一个或多个Unicode字母开头,后跟
- 后跟一个或多个Unicode字母的撇号(
'
),重复0次或多次 - 字符串在匹配的模式之后立即结束
也就是说,它将匹配这些术语
你好不能Alah'u'v'oo O'reilly
但不是这些
直到
,我正在尝试这种模式
^(''p{L})+('(''p{L})+)*$
但它不会匹配任何包含撇号的单词。我做错了什么?
编辑:使用正则表达式的代码
var separateWords = function(text) {
var word = XRegExp("(''p{L})+('(''p{L})+)*$");
var splits = [];
for (var i = 0; i < text.length; i++) {
var item = text[i];
while (i + 1 < text.length && word.test(item + text[i + 1])) {
item += text[i + 1];
i++;
}
splits.push(item);
}
return splits;
};
我认为您需要省略字符串开始/结束锚来匹配单个单词:
"(''p{L})+('(''p{L})+)*"
此外,我不确定这些捕获组需要什么(这可能取决于您的应用程序),但您可以将它们缩短为
"''p{L}+('''p{L}+)*"
试试这个正则表达式:
^[^'](?:['w']*[^'])?$
首先,它进行检查以确保第一个字符不是撇号。然后它要么得到任意数量的单词字符或撇号,后面跟着撇号以外的任何字符,要么什么都得不到(一个字母单词)。
相关文章:
- 当鼠标悬停在文本中的单词上时显示警报
- Image赢得't隐藏在滚动jQuery上
- 匹配一个单词,其中候选人可以跨越顺序组(跨度)
- 如何使用jquery强制一个单词更改大小写等以保留品牌
- 拆分单词jquery
- 如何让程序检查所选单词中是否有按键
- DropDownListFor赢得't在更改时调用函数
- 如何在悬停时流畅地更改单词
- EmberJS中支持单字母单词模型
- 字母计数:返回重复字母数最多的第一个单词
- 如何在Javascript中从字符串中提取某些单词
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 在javascript中查找单词
- 使用jQuery检查提交时添加到句子中的单词
- 如何在PHP中获取特定的字符串单词
- .load()函数赢得't加载javascript
- 停止较大单词的重叠
- 第二组标签及其内容赢得'默认情况下t加载
- CSS赢得't填充视图端口
- Regex赢得'不要像预期的那样匹配单词