Java 正则表达式字符串不包含?
我正在尝试创建一个正则表达式,它查找包含以下内容的文本:Java 正则表达式字符串不包含?,java,regex,Java,Regex,我正在尝试创建一个正则表达式,它查找包含以下内容的文本: src .js 并且不同时包含问号“?” 例如,我希望我的正则表达式匹配: src="scripts/test.js" 和不匹配: src="Servlet?Template=scripts/test.js" 因为它包含一个问号 有人能给我合适的正则表达式吗 非常感谢您可以使用此正则表达式: /\bsrc=(?!.*?\?).+?\.js\b/i (?!.*?\?)是负前瞻性的,这意味着当输入字符串中有src=之后的时,匹配失败。
src
.js
src="scripts/test.js"
和不匹配:
src="Servlet?Template=scripts/test.js"
因为它包含一个问号
有人能给我合适的正则表达式吗
非常感谢您可以使用此正则表达式:
/\bsrc=(?!.*?\?).+?\.js\b/i
(?!.*?\?)
是负前瞻性的,这意味着当输入字符串中有src=
之后的时,匹配失败。您可以使用此正则表达式:
/\bsrc=(?!.*?\?).+?\.js\b/i
(?!.*?\?)
是负前瞻性的,这意味着当输入字符串中有src=
之后的时,匹配失败。您可以使用此正则表达式:
/\bsrc=(?!.*?\?).+?\.js\b/i
(?!.*?\?)
是负前瞻性的,这意味着当输入字符串中有src=
之后的时,匹配失败。您可以使用此正则表达式:
/\bsrc=(?!.*?\?).+?\.js\b/i
(?!.*?\?)
是负前瞻的,这意味着当输入字符串中的src=
后面有一个?
时,匹配失败。您似乎想这样做,但由于您使用的是JavaScript,您已经有了一个功能齐全的DOM解析器
那么以下内容如何:
var scripts = document.querySelectorAll('script[src]');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute('src');
if (/\.js$/.test(src) && src.indexOf('?') === -1) {
alert(src);
}
}
var scripts=document.querySelectorAll('script[src]');
对于(var i=0;i
示例jsFiddle。您似乎想这样做,但由于您使用的是JavaScript,您已经有了一个功能齐全的DOM解析器
那么以下内容如何:
var scripts = document.querySelectorAll('script[src]');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute('src');
if (/\.js$/.test(src) && src.indexOf('?') === -1) {
alert(src);
}
}
var scripts=document.querySelectorAll('script[src]');
对于(var i=0;i
示例jsFiddle。您似乎想这样做,但由于您使用的是JavaScript,您已经有了一个功能齐全的DOM解析器
那么以下内容如何:
var scripts = document.querySelectorAll('script[src]');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute('src');
if (/\.js$/.test(src) && src.indexOf('?') === -1) {
alert(src);
}
}
var scripts=document.querySelectorAll('script[src]');
对于(var i=0;i
示例jsFiddle。您似乎想这样做,但由于您使用的是JavaScript,您已经有了一个功能齐全的DOM解析器
那么以下内容如何:
var scripts = document.querySelectorAll('script[src]');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute('src');
if (/\.js$/.test(src) && src.indexOf('?') === -1) {
alert(src);
}
}
var scripts=document.querySelectorAll('script[src]');
对于(var i=0;i
示例jsFiddle.这是我可能更喜欢阅读if(str.indexOf('src')!=-1&&str.indexOf('.js')!=-1&&str.indexOf('?'))==-1{…}
的时候之一。我希望我能使用它,但是我处理的是一个完整的模板文本,所以它可能包含几个带.js的'src',我想更改每次出现的src。这是我可能更喜欢阅读if(str.indexOf('src')!=-1&&str.indexOf('js')!=-1&&str.indexOf('?')=-1{…}
。我希望我能使用它,但是我处理的是一个完整的模板文本,所以它可能包含几个带.js的'src',我想更改每次出现的src。这是我可能更喜欢阅读if(str.indexOf('src')!=-1&&str.indexOf('js')!=-1&&str.indexOf('?')=-1{…}
。我希望我能使用它,但是我处理的是一个完整的模板文本,所以它可能包含几个带.js的'src',我想更改每次出现的src。这是我可能更喜欢阅读if(str.indexOf('src')!=-1&&str.indexOf('js')!=-1&&str.indexOf('?')=-1{…}
。我希望我能使用它,但是我处理的是一个完整的模板文本,所以它可能包含几个带有'.js'的'src',我想更改每次出现的src,谢谢!我试过了,但它通过了这篇课文,当然通过了。您的规范要求它与之匹配。@user2484927:为什么它不匹配
?我在Java、模式和匹配器类中使用:Pattern p=Pattern.compile(“/=\\bsrc=(?!.\\\?)。+?\.js\\b”);匹配器m=p.Matcher(strTemplateText)
m.find()
返回false,即使strTemplatetext包含
@anubhava@PhylogenesisJava,您问题中的标记表示JavaScript。他们是完全不同的语言。谢谢!我试过了,但它通过了这篇课文,当然通过了。您的规范要求它与之匹配。@user2484927:为什么它不匹配
?我在Java、模式和匹配器类中使用:Pattern p=Pattern.compile(“/=\\bsrc=(?!.\\\?)。+?\.js\\b”);匹配器m=p.Matcher(strTemplateText)
m.find()
返回false,即使strTemplatetext包含
@anubhava@PhylogenesisJava,您问题中的标记表示JavaScript。他们是完全不同的语言。谢谢!我试过了,但它通过了这篇课文,当然通过了。您的规范要求它与之匹配。@user2484927:为什么它不匹配
?我在Java、模式和匹配器类中使用:Pattern p=Pattern.compile(“/=\\bsrc=(?!.\\\?)。+?\.js\\b”);匹配器m=p.Matcher(strTemplateText)
m.find()
返回false,即使strTemplatetext包含
@anubhava@PhylogenesisJava,您问题中的标记表示JavaScript。他们是完全不同的语言。谢谢!我试过了,但它通过了这篇课文,当然通过了。哟