Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

นิพจน์ทั่วไปสำหรับเลขฐานสิบหกที่มากกว่า 10 และควรมีความยาวเท่ากันใน java


ต่อไปนี้คือนิพจน์ทั่วไปที่จะจับคู่เลขฐานสิบหกที่มากกว่า 10 ที่มีความยาวคู่ -

^(?=.{10,255}$)(?:0x)?\p{XDigit}{2}(?:\p{XDigit}{2})*$

ที่ไหน

  • ^ − จับคู่จุดเริ่มต้นของประโยค

  • (?=.{10,255}$) − สตริงที่ลงท้ายด้วยอักขระตั้งแต่ 10 ถึง 255

  • \p{XDigit}{2} − เลขฐานสิบหกสองตัว

  • (?:\p{XDigit}{2})* − 0 ลำดับขึ้นไปของอักขระฐานสิบหกคู่

  • $ − จับคู่ส่วนท้ายของประโยค

ตัวอย่างที่ 1

นำเข้า java.util.Scanner;import java.util.regex.Matcher;import java.util.regex.Pattern; คลาสสาธารณะ JavaExample51 { โมฆะสาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (ระบบ .ใน); สตริง nums[] =สตริงใหม่[5]; for(int i=0; i 

ผลลัพธ์

ป้อนเลขฐานสิบหก:0x1234567890ป้อนเลขฐานสิบหก:123456789ป้อนเลขฐานสิบหก:123456789012ป้อนเลขฐานสิบหก:sfdgdf35364ป้อนเลขฐานสิบหก:$@%#BV#*0x1234567890ไม่ถูกต้อง123456 valid123456789012 is validsfdgdf35364 is not valid$@%#BV#* is not valid

ตัวอย่างที่ 2

<ก่อน> นำเข้า java.util.Scanner; JavaExample คลาสสาธารณะ { โมฆะคงที่สาธารณะหลัก (สตริง [] args) { Scanner sc =สแกนเนอร์ใหม่ (System.in); System.out.println("ป้อนเลขฐานสิบหก:"); ชื่อสตริง =sc.nextLine(); สตริง regex ="^(?=.{10,255}$)(?:0x)?\\p{XDigit}{2}(?:\\p{XDigit}{2})*$"; ผลลัพธ์บูลีน =name.matches (regex); if(ผลลัพธ์) { System.out.println("หมายเลขที่ระบุถูกต้อง"); } อื่น { System.out.println ("หมายเลขที่ระบุไม่ถูกต้อง"); } }}

ผลลัพธ์ 1

ป้อนชื่อของคุณ:0x1234567890ชื่อที่ถูกต้อง

ผลลัพธ์ 2

ป้อนเลขฐานสิบหก:024587545ตัวเลขที่ระบุไม่ถูกต้อง