Java 和 javascript 中的正则表达式

Regular Expression in java and javascript

本文关键字:正则表达式 javascript Java      更新时间:2023-09-26

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

String expr = "<a.*?id='"(pres.*?)'".*?>Discharge.*?Medications:</a>";

我想在Javascript中使用相同的正则表达式。会有所不同还是相同?

我建议你不要这样做。

为什么?我只想指出StackOverflow上最受好评的答案之一:https://stackoverflow.com/a/1732454/851498

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

或者如果你使用的是jQuery:

$('a').each( function() {
    if ( this.id.substr( 0, 3 ) === 'pres' ) {
        // check $( this ).text()
    }
} );

我没有编写最后一部分,但你明白了。在$( this ).text()上使用正则表达式很好,它不是 HTML。

差别不大。JavaScript 中的正则表达式介于 / 之间。所以它看起来像这样:

var expr = /<a.*?id='"(pres.*?)'".*?>Discharge.*?Medications:</a>/;

编辑,斜杠错误。哎呀。

或者,您可以执行以下操作:

var expr = new RegExp("<a.*?id='"(pres.*?)'".*?>Discharge.*?Medications:</a>");

有关 JavaScript 中 RegExp 的更多详细信息,请参阅 MDN 文档:https://developer.mozilla.org/en/JavaScript/Guide/Regular_Expressions

会是一样的。 所有主流的正则表达式引擎都支持相同的正则表达式基本语法。 有些人在上面添加了自己的功能,但您的示例并没有做任何古怪的事情。