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;
}