【问题标题】:regex restriction alphabet正则表达式限制字母
【发布时间】:2012-10-31 15:45:52
【问题描述】:

我有一个字符串:

var str = "str is str, 12str345 and ABCstrDEF";

我想捕获除ABCstrDEF 之外的所有strstr 被字母字符包围)

可以用正则表达式限制字母吗?

【问题讨论】:

  • 单独使用ABCstrstrDEF 怎么样?另外,你试过什么?
  • 您能具体说明一下吗?如果 str"word"(不是单词的一部分):.match(/\bstr\b/g),或者前面或后面没有大写字母:.match(/(?![A-Z])(str)(?![A-Z])/g),您是否要捕获 .match(/(?![A-Z])(str)(?![A-Z])/g),或者它是您想要从匹配项中排除的实际 alphabet 字符串吗,如AXstrZY 可以,但ABstrCD 不是?
  • 我的目标是排除所有左侧或右侧有任何字母的“str”

标签: javascript html regex


【解决方案1】:

一起去

RegExp.quote = function(str) {
  return (str + '').replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
};

var re = new RegExp("/\b[^a-zA-Z]*?" + RegExp.quote(str) + "[^a-zA-Z]*?\b/g");  
alert(input.match(re));

【讨论】:

  • @user1785360 - 它工作正常,因为^[^...] 的开头
  • @user1785360 - 我已经用quote() 函数更新了我的答案,以防你的str 包含一些特殊的正则表达式字符...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-30
  • 2011-09-16
  • 2014-05-24
  • 1970-01-01
  • 2021-09-12
相关资源
最近更新 更多