は、私はJavaで、次の正規表現を使用しようとしている正規表現で引用し、それが一致するはずの任意のlang="2-char-lang-name"
:Javaは、エスケープ(使用)は
String lang = "lang=\"" + L.detectLang(inputText) +"\"";
shovel.replaceFirst("lang=\"[..]\"", lang);
私は、単一のスラッシュは正規表現で解釈されることを知っていますスラッシュでエスケープ文字ではないので(私のコードは機能しません)、スラッシュをエスケープすると、"
はそれ以上エスケープされず、構文エラーが発生します。言い換えれば
、どのように私は正規表現で"
を含めることができますか? "lang=\\"[..]\\""
は機能しません。私も3つのスラッシュを試しましたが、それにはマッチもありませんでした。
私はまた、あなたがXML/HTMLを解析するために正規表現を使用していない一般的なルールを知っています。 (shovel
はXMLです)しかし、私がやっているのは、XMLの最初の30文字以内のlang
属性を探していて、置き換えたいのです。この場合、正規表現を使用することは本当に悪い考えですか?私はDOMの使用はより良い/より効率的であるとは思わない。
ああ、私は本当に彼が '[..]'で行っていたことを解析していませんでした。私は '[] 'の中では' .'が文字通り解釈されると考えるので、 '[..]'は '' .'または '.'のいずれかの単一の文字を意味します。 – OpenSauce
ダン...あなたは正しいと思います。私の正規表現はあまりにも錆びたようです。ありがとうございました。 – Spectraljump