none以外の文字列に一致する正規表現が必要です。 私は使ってみました regular exp = "^ [^ none] $"、 しかし動作しません。java regexが、他の単語を受け入れないようにする
答えて
正規表現(?!^none$).*
を使用できます。 Regex inverse matching on specific string?
"^[^none]$"
という理由が機能しないのは、文字列 "n"、 "o"、または "e"以外のすべての文字列と実際に一致しているためです。
もちろん、String.equals
を使用するほうが簡単です(!"none".equals(testString)
)。
正規表現 "^(?! none)。+ $"はそれにもかかわらず文字列を受け入れません。正規表現は何も受け入れてはいけません。それは他のすべての言葉を受け入れるべきです。表現を変更するにはどうすればよいですか? – user679526
@ user679526私は今それを得た。 '^(none!)。+ $'は "none"で始まらない単語にマッチします。正規表現 '(?!^ none $)。*'で私の答えを編集しました。これは "none"以外のすべての文字列と一致するはずです。 –
String
をJavaの特定の単語と照合する場合は、equals()
を使用する必要があります。この場合、論理が一致するように一致を反転させたいとします。
if(!theString.equals("none")) {
// do stuff here
}
飢えているリソースがずっと少なく、はるかに直感的です。
あなたは単語「なし」を含む文字列を一致させる必要がある場合、あなたはおそらくのようなものを探しています:
if(theString.matches("\\bnone\\b")) {
/* matches theString if the substring "none" is enclosed between
* “word boundaries”, so it will not match for example: "nonetheless"
*/
}
それとも、「単語の境界」は、特定の区切り文字を意味することをかなり確信できる場合あなたはまだindexOf()
メソッドを使用して正規表現を回避することができます
int i = theString.indexOf("none");
if(i > -1) {
if(i > 0) {
// check theString.charAt(i - 1) to see if it is a word boundary
// e.g.: whitespace
}
// the 4 is because of the fact that "none" is 4 characters long.
if((theString.length() - i - 4) > 0) {
// check theString.charAt(i + 4) to see if it is a word boundary
// e.g.: whitespace
}
}
else {
// not found.
}
実はこれは「言葉」を除くすべての単語にマッチする正規表現です:
Pattern regex = Pattern.compile("\\b(?!word\\b)\\w+\\b");
Matcher regexMatcher = regex.matcher(subjectString);
while (regexMatcher.find()) {
// matched text: regexMatcher.group()
// match start: regexMatcher.start()
// match end: regexMatcher.end()
}
「単語」が他の単語に含まれないように単語境界を使用する必要があります。
説明:これは、あなたが探している正規表現である
"
\b # Assert position at a word boundary
(?! # Assert that it is impossible to match the regex below starting at this position (negative lookahead)
Lorem # Match the characters “Lorem” literally
\b # Assert position at a word boundary
)
\w # Match a single character that is a “word character” (letters, digits, etc.)
+ # Between one and unlimited times, as many times as possible, giving back as needed (greedy)
\b # Assert position at a word boundary
"
:あなたはすべてのものが、「どれも一致しない正規表現を使用するように強制されていない場合
Pattern p = Pattern.compile("^(?!none$).*$");
Matcher m = p.matcher("your string");
System.out.println(s + ": " + (m.matches() ? "Match" : "NO Match"));
はそれは、言いました"よりシンプルで、速く、はっきりしていて、書くことと理解しやすいです:
Pattern p = Pattern.compile("^none$");
次に、マッチを除外します。
Matcher m = p.matcher("your string");
System.out.println(s + ": " + (m.matches() ? "NO Match" : "Match"));
- 1. [<-SPACE->]を受け入れ、regex javaの予約語を受け付けない
- 2. Bash Regexは[Number]を受け入れますが、番号のみを受け入れるようにします
- 3. 単語の挿入にjavaのregex apiを使用する
- 4. regex正確な単語/文の一致を見つけよう
- 5. RegExユニークな単語を見つける
- 6. textbox/editboxに英語と外国語の文字と数字を受け付けるが、記号は受け入れないようにする方法は?
- 7. grep/regexがアクセント付きの単語を見つけられない
- 8. 単語のワイルドカードを使用して受け入れられない変更を見つける
- 9. AVCapturePhotoSettingsが受け入れられないNSDictionary要素を受け入れる
- 10. Python Regex:なぜPythonは私のパターンを受け入れないのですか?
- 11. 電子メールRegexがコンマを間違って受け入れる
- 12. NSTextFieldが返品を受け入れるようにします。
- 13. テキストファイルから単語を単語に挿入する(Java)
- 14. 簡単なテキスト入力フィールドで改行を受け入れる
- 15. Python Regexピッキング "単語を含まない"
- 16. Regexを単語の中のRegexのグループを見つけるために
- 17. Javaがモジュール名とその他の変数を受け付けていない
- 18. ユーザーを作成して、受け入れられないようにする(406)
- 19. Regexに複数の単語が含まれています
- 20. pdfファイルを受け入れるREGEXのjavascriptコードを変更
- 21. 単語の途中に画像があるときに単語が壊れないようにする
- 22. 入力した単語をJavaのテキストファイルに入れる方法
- 23. RegExは空白を受け入れていません
- 24. Javaでマウス入力を受け入れるにはどうすればよいですか?
- 25. 言語を受け入れるプッシュダウンオートマトンを作成するには?
- 26. Regex - 5〜555の値を受け入れる
- 27. NetbeansのRESTful Javaクライアント:javax.ws.rs.NotAcceptableException:HTTP 406受け入れられない
- 28. Sequelize#belongsTo()をnull参照を受け入れないように設定する
- 29. 特定の単語がJTextPaneに入力されたときに、その単語の色を変更するにはどうすればよいですか?
- 30. pythonアルゴリズムが入力値を受け入れるようにする
"none '以外の意味ですか?もしそうなら、なぜ 'none'にマッチして結果を否定するのでしょうか? –
文字列が "none"の場合にのみ失敗しますか? – FailedDev