Javaで構築された正規表現があります。
String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>";
Javascriptで同じ正規表現を使いたいです。違うのだろうか、同じだろうか?
Javaで構築された正規表現があります。
String expr = "<a.*?id=\"(pres.*?)\".*?>Discharge.*?Medications:</a>";
Javascriptで同じ正規表現を使いたいです。違うのだろうか、同じだろうか?
やらないことをお勧めします。
なんで?StackOverflow で最も支持された回答の 1 つを指摘します: 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
それは同じです。主流の正規表現エンジンはすべて、正規表現の同じ基本構文をサポートしています。上に独自の機能を追加するものもありますが、あなたの例は奇抜なことは何もしていません。