文字を一致させようとしています。それの前に文字\がないならば。有効なJava Regexの問題
État de l\'impression
無効État de l'impression
有効
Saisir l\'utilisateur et le domaine pour la connexion
私は私が後だが、このような負の後読みアサーションなどの一種であると考えていますか?
私はJavaの
コード
String[] inputs = new String[] { "Recherche d'imprimantes en cours…", "Recherche d\\'imprimantes en cours…" } ;
for(String input : inputs)
{
Pattern p = Pattern.compile("(?<!\\\\)'");
System.out.println(input);
System.out.println(p.matcher(input).matches());
}
出力
Recherche d'imprimantes en cours…
false
Recherche d\'imprimantes en cours…
false
でこの作品を作るしようとしていたときに問題があるしかし、私は
RegexBuilder
でテストしていたときに正常に動作します(?<!\\)'
一致する必要がありますtrue
,false
は単に "何これ"「 – delicateLatticeworkFever
@goldilocks前に '[^ \\\\]'権利を使用する方が簡単かもしれませんが、場合には一致しませんan(エスケープされていない!)引用符は、入力文字列の先頭にあります。言い換えれば、 'Pattern.compile(" [^ \\\\] '")。matcher("' ")。find()'はクォートの前にバックスラッシュがないのに 'false'を返します。 –
ああ、良いキャッチ。愚かな私。負のlookbehindは機能しません。 – delicateLatticeworkFever