亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何只允許三個字符

如何只允許三個字符

qq_遁去的一_1 2023-04-26 17:21:26
如果字符串包含字母 L、M 或 R 以外的任何內容,我需要正則表達式檢查失敗。我已經嘗試將 L、M 和 R 列入白名單,并將任何不是 L、M 或 R 的內容列入黑名單,或者我是這么認為的。我可能兩者都失敗了。if(Pattern.compile("^[LMR]$").matcher("MMMRMMMRMMLLMMK").matches()){return false;}if(Pattern.compile("[^LMR]").matcher("MMMRMMMRMMLLMMK").matches()){return false;}Pattern pat = Pattern.compile("^LMR]");Matcher mat = pat.matcher("MMMRMMMRMMLLMMK");if(pat.matches("[^LMR]", "MMMRMMMRMMLLMMK")){return false;}預期:字符串“MMMRMMMRMMLLMMK”失敗。實際:我可以在那個匹配器中放入任何東西,它都會通過。
查看完整描述

2 回答

?
三國紛爭

TA貢獻1804條經驗 獲得超7個贊

這個表達式可能只是工作:

^[LMR]*$

測試

import java.util.*;

import java.lang.*;

import java.io.*;

import java.util.regex.Matcher;

import java.util.regex.Pattern;


/* Name of the class has to be "Main" only if the class is public. */

class Ideone

{

? ? public static void main (String[] args) throws java.lang.Exception

? ? {


? ? ? ? final String regex = "^[LMR]*$";

? ? ? ? final String string = "MMMRMMMRMMLLMMK\n"

? ? ? ? ? ? ?+ "MMMRMMMRMMLLMM\n"

? ? ? ? ? ? ?+ "L\n"

? ? ? ? ? ? ?+ "M\n"

? ? ? ? ? ? ?+ "R\n";


? ? ? ? final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);

? ? ? ? final Matcher matcher = pattern.matcher(string);


? ? ? ? while (matcher.find()) {

? ? ? ? ? ? System.out.println("Full match: " + matcher.group(0));

? ? ? ? ? ? for (int i = 1; i <= matcher.groupCount(); i++) {

? ? ? ? ? ? ? ? System.out.println("Group " + i + ": " + matcher.group(i));

? ? ? ? ? ? }

? ? ? ? }


? ? }

}


查看完整回答
反對 回復 2023-04-26
?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

我更愿意在這里使用String#matches簡單的模式[LMR]*:


String input = "MMMRMMMRMMLLMM";

if (input.matches("[LMR]*")) {

    System.out.println("MATCH");

}

else {

    System.out.println("NO MATCH");

}

請注意,String#match默認情況下假定圍繞模式開始和結束錨點,因此我們甚至不需要提供^and $。


查看完整回答
反對 回復 2023-04-26
  • 2 回答
  • 0 關注
  • 156 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號