在Java中,您可能会尝试stackoverflow.com使用与URL匹配的正则表达式Pattern.compile("stackoverflow.com").但这是错误的,因为它.在正则表达式中具有特殊含义.解决这个问题的最简单的方法是写Pattern.compile(Pattern.quote("stackoverflow.com"))哪个就出来:Pattern.compile("\\Qstackoverflow.com\\E")其中"引号"的整个字符串.
我想在JavaScript中做同样的事情,但JavaScript的正则表达式并没有赋予任何含义\Q,\E并且它看起来不像是等效的JavaScript,所以我不知道如何去做.我的第一个想法(请参阅下面的答案)是在JavaScript正则表达式中具有特殊含义的任何字符之前加上反斜杠,但这似乎容易出错,我怀疑有人可能知道更好的方法.
这是针对Firefox扩展,因此Mozilla特定的解决方案是可以的.
我有一个正则表达式测试数字(0-9)和/或正斜杠(/).它看起来像这样:
/^[0-9/]+$/i.test(value)
Run Code Online (Sandbox Code Playgroud)
现在我认为这是正确的,但eclipse javascript验证器不同意:
令牌"]"上的语法错误,删除此令牌
我想这是因为分隔符/分隔符是/和eclipse'认为'正则表达式完成(因此一个]意外).
我们可以通过逃避/这样来满足日食:
/^[0-9\/]+$/i.test(value)
Run Code Online (Sandbox Code Playgroud)
请注意,这两个版本都适合我.
我的问题是:
有谁知道我应该做什么?逃避与否?我没有发现任何声誉良好的网站告诉我逃避/范围,但Eclipse验证器可能不是完全愚蠢的...
我必须传递给变量的RegExp值并指向一个单词边界.如果它包含变量值,我有一个要检查的字符串.我不知道如何将regexp作为变量值和单词边界属性传递给我.
所以像这样:
var sa="Sample";
var re=new RegExp(/\b/+sa);
alert(re.test("Sample text"));
Run Code Online (Sandbox Code Playgroud)
我尝试了一些方法来解决问题,但仍然不能这样做:(
我想我不是很擅长正则表达式,所以这是我的问题(我确定它很容易解决,但不知何故我似乎无法找到)
var word = "aaa";
text = text.replace( new RegExp(word, "g"),
"<span style='background-color: yellow'>"+word+"</span>");
Run Code Online (Sandbox Code Playgroud)
这在大多数情况下都有效.
我想要做的是正则表达式只能在单词后面没有char /并且前面没有char ".
这是我data按标题值过滤的方法:
data.filter(x => x.title.includes(term))
Run Code Online (Sandbox Code Playgroud)
所以数据就像
Sample one
Sample Two
Bla two
Run Code Online (Sandbox Code Playgroud)
将被"减少"为
Bla two
Run Code Online (Sandbox Code Playgroud)
如果我过滤了two.
但我需要得到过滤结果
Sample Two
Bla two
Run Code Online (Sandbox Code Playgroud) 我用 Angular 写了一个管道,|用,.
export class AppComponent {
name = 'Name|with|pipes';
}
Run Code Online (Sandbox Code Playgroud)
所需的输出是Name,with,pipes,但我认为它是,N,a,m,e,|,w,i,t,h,|,p,i,p,e,s,
这是管道的代码:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({name: 'replace'})
export class ReplacePipe implements PipeTransform {
transform(value: string, strToReplace: string, replacementStr: string): string {
if(!value || ! strToReplace || ! replacementStr)
{
return value;
}
return value.replace(new RegExp(strToReplace, 'g'), replacementStr);
}
}
Run Code Online (Sandbox Code Playgroud)
这是StackBlitz上的代码。我怎样才能解决这个问题?
我有以下字符串:
[27564][85938][457438][273][48232]
Run Code Online (Sandbox Code Playgroud)
我想替换所有[与''.我尝试了以下但它不起作用:
var str = '[27564][85938][457438][273][48232]'
var nChar = '[';
var re = new RegExp(nChar, 'g')
var visList = str.replace(re,'');
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
提前谢谢了.
我试图获取输入文本字段的值,并在正则表达式中使用它.这是我必须匹配一行的开头.
regex = new RegExp('^' + inputValue, 'i')
Run Code Online (Sandbox Code Playgroud)
它对于以字母数字字符开头的常规字符串工作正常,但我也使用它来获取金额.当输入字段以'$'(美元符号)开头时,我会得到不同的结果.
如何将上面的变量转义为一个简单的字符串?我试过这个,但没有运气:
regex = new RegExp('^[' + inputValue + ']', 'i')
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我需要以下代码:
string1.replaceAll(string2, myConstatntString)
问题是,string1并且string2可以包含特殊符号'('.
我想引用string2使用 java.util.regex.Pattern.quote(String arg):
string1.replaceAll(Pattern.quote(string2), myConstatntString);
但java.util.regex.Pattern在GWT客户端不可用.GWT有没有替代品Pattern.quote?
是否有一个正则表达式来保留案例模式\U和\L?
在下面的示例中,我想转换"date"为"month"同时保持使用的大小写input
from to
"date" ~~> "month"
"Date" ~~> "Month"
"DATE" ~~> "MONTH"
Run Code Online (Sandbox Code Playgroud)
我目前使用三个嵌套调用sub来完成此任务.
input <- c("date", "Date", "DATE")
expected.out <- c("month", "Month", "MONTH")
sub("date", "month",
sub("Date", "Month",
sub("DATE", "MONTH", input)
)
)
Run Code Online (Sandbox Code Playgroud)
我们的目标是有一个单一的pattern和一个replace如
gsub("(date)", "\\Umonth", input, perl=TRUE)
Run Code Online (Sandbox Code Playgroud)
这将产生所需的输出