1

正規表現:

\b< low="" number="" low="">\b

文字列の例:

 <b22>Aquí se muestran algunos síntomas < low="" number="" low=""> tienen el siguiente aspecto.</b22> 

症状<の境界という単語が見つからない理由がわかりません。>tienenの間の反対側にも同じ問題が存在します

この境界をより適切に一致させる方法についての提案はありますか?

次の入力を行うと、正規表現は期待どおりに一致します。

Aquí se muestran algunos síntomas< low="" number="" low="">tienen el siguiente aspecto.

エッジ条件を削除する\b\bPHRASE\bは単語の一部と一致できないため、オプションではありません

アップデート

これでうまくいきました:( IgorMostyDKNickCに感謝します)

Regex(String.Format(@"(?<=[\s\.\?\!]){0}(?=[\s\.\?\!])", innerStringToMatch);

境界のマッチングを改善し、[\s\.\?\!]これらのエッジをポジティブな先読みと後読みに一致させる必要がありました。

4

2 に答える 2

4

\bは、文字列内の2つの文字間で発生する可能性のある長さゼロの一致です。一方は単語文字で、もう一方は単語文字ではありません。単語の文字は[A-Za-z0-9_] *として定義されます。<は単語の文字ではないので、\b一致しません。

代わりに、次の正規表現を試すことができます(キャプチャ(?: )されていない括弧グループです)。

(?:\b|\s+)< low="" number="" low="">(?:\b|\s+)

*)実際、これはすべての正規表現エンジンに当てはまるわけではありません。正確には、\ bはとの間\wで一致します。\Wここで、\w任意の単語文字と一致します。\wこの回答へのコメントでTimPietzckerが指摘したように、「単語文字」の意味は実装によって異なりますが、一致する場所<や。がどこにあるかはわかりません>

于 2012-01-31T21:58:39.867 に答える
3

私はあなたが次のことをしようとしていると思います:

\s< low="" number="" low="">\s
于 2012-01-31T22:07:45.197 に答える