java和javascript中的正则表达式
我有一个用Java构建的正则表达式java和javascript中的正则表达式,java,javascript,regex,Java,Javascript,Regex,我有一个用Java构建的正则表达式 String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>"; 我想在Javascript中使用相同的正则表达式。 是不同还是相同?差别不大。JavaScript中的正则表达式介于/。所以看起来是这样的: var expr = /<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>
String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>";
我想在Javascript中使用相同的正则表达式。
是不同还是相同?差别不大。JavaScript中的正则表达式介于/。所以看起来是这样的:
var expr = /<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>/;
编辑,斜杠错误。哎呀。也一样。所有主流正则表达式引擎都支持正则表达式的相同基本语法。有些人在上面添加了自己的功能,但您的示例并没有做任何奇怪的事情。或者,您可以执行以下操作:
var expr = new RegExp("<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>");
有关JavaScript中RegExp的更多详细信息,请参阅MDN文档:
我建议你不要这样做 为什么??我将向您指出关于StackOverflow的一个投票率最高的答案: 在javascript中,最好使用DOM而不是正则表达式来解析HTML 例如:
var a = document.querySelectorAll('a');
for ( var i = 0, len = a.length; i < len; i++ ) {
// If the id starts with "pres"
if ( a[ i ].id.substr( 0, 3 ) === 'pres' ) {
// check a[ i ].textContent
}
}
我没有编写最后一部分的代码,但你明白了。在$this.text上使用正则表达式就可以了,它不是HTML。@thagorn刚刚注意到我自己:看起来你正试图用正则表达式解析HTML。你可以把字符串解析成DOM,然后从DOM开始。正则表达式本身就足够复杂了。如果每种语言都有不同的文字,那将是地狱!看一看。也看一看。这是StackOverflow上投票最多的答案之一。所以是的,这意味着。。。当我需要解析html时,使用正则表达式不是个好主意,对吗?确切地说:不能用正则表达式正确解析html,请参阅链接以获取示例。@SoftwareGuruji nope特别是在浏览器中,您可以轻松地将字符串转换为可查询的dom。var root=document.createElementdiv;root.innerHTML=;console.log root.firstChild.id
$('a').each( function() {
if ( this.id.substr( 0, 3 ) === 'pres' ) {
// check $( this ).text()
}
} );