Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.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
java和javascript中的正则表达式_Java_Javascript_Regex - Fatal编程技术网

java和javascript中的正则表达式

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>

我有一个用Java构建的正则表达式

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