Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何匹配包含特殊字符的整个单词?_Javascript_Regex_Oniguruma - Fatal编程技术网

Javascript 如何匹配包含特殊字符的整个单词?

Javascript 如何匹配包含特殊字符的整个单词?,javascript,regex,oniguruma,Javascript,Regex,Oniguruma,我只使用一种模式来匹配单词。这些标准是以下标准之一: 在第一个字母处包含数字或下划线,或 单词中至少有一个特殊字符(不包括下划线): 应该匹配 不应该匹配 到目前为止,我通过以下方式成功匹配了其中一些: [\p{^Alpha}]\S+ 除了单词中有特殊字符的单词外 3测试数据 3测试数据 \u测试数据 \u test3Data %data% 测试%BIN%数据 测试%BIN%数据 te$t&$#@daTa 若我答对了问题,你们可以在字符串中搜索起始%和结束%。假设只有一个可能的by字符串,

我只使用一种模式来匹配单词。这些标准是以下标准之一:

  • 在第一个字母处包含数字或下划线,或

  • 单词中至少有一个特殊字符(不包括下划线):

应该匹配

不应该匹配

到目前为止,我通过以下方式成功匹配了其中一些:

[\p{^Alpha}]\S+
除了单词中有特殊字符的单词外

3测试数据
3测试数据
\u测试数据
\u test3Data
%data%
测试%BIN%数据
测试%BIN%数据
te$t&$#@daTa


若我答对了问题,你们可以在字符串中搜索起始%和结束%。假设只有一个可能的by字符串,您可以使用indexOf和lastIndexOf

function searchTagIn(symbol, str){ let chk=str.indexOf(symbol);
 if(  chk>-1){
  if(str.lastIndexOf(symbol)!=chk){
   return str.substring(chk,str.lastIndexOf(symbol);
  }
 }return;
}

如果支持lookbehind,则可以使用来匹配以下划线或数字开头的字符,或者在另一种情况下匹配零次或多次非空白字符,至少是使用字符类的特殊字符,然后再匹配零次或多次非空白字符


(?这里的规则是什么?你也可以使用
+
\S+
嗨,Manu,欢迎使用stack overflow。你能详细说明一下你想要什么作为输出吗?谢谢!我的目标是让每个单词都有一个完整的单词匹配。这些单词来自一个代码,所以我试图找到一个特定的模式,在t处用数字和下划线匹配单词第一个字母,以及单词任何部分的特殊字符。如果您想在第一个字符可以是字符、数字、下划线或百分号的位置匹配它们,请尝试@Thefourthbird Nice,它很有效!支持Lookback,但我仍在尝试学习它们。非常感谢!)谢谢并欢迎各位新来者!不过,这不是我想要的,很抱歉我说得不清楚。我正在尽可能地用一个正则表达式模式匹配所有单词,而不必创建函数。谢谢!只是后续,[%@#$]此部分不包含所有其他特殊字符,对吗?因此,如果希望匹配,我需要添加更多字符。@Manu是的,这是正确的。请注意,此部分
\S*[%@#$]\由于
\S*
的重复次数为零或更多,S*
也将匹配一个特殊字符。也许您可以使用注释中的所有要求更新您的问题。
[\p{^Alpha}]\S+
function searchTagIn(symbol, str){ let chk=str.indexOf(symbol);
 if(  chk>-1){
  if(str.lastIndexOf(symbol)!=chk){
   return str.substring(chk,str.lastIndexOf(symbol);
  }
 }return;
}