簡體   English   中英

正則表達式在python中默認匹配換行符

[英]Regex matching newline character by default in python

我想檢查給定的字符串輸入是否是六位數。

有效的:

* 123456
* 098765

無效的:

* 123
* 12345a
* as3445
* /n123456
* 123456\n

我的 Python 代碼:

bool(re.match("^[0-9]{6}$",string))

但這也匹配"123456\\n"

為什么它匹配換行符以及如何限制這種匹配?

正如評論中所建議的, \\Z在字符串的末尾斷言位置,或在字符串末尾的行終止符之前

values = ["123456", "098765", "Invalid:", "123", "12345a", "as3445", "/n123456", "123456\n"]
for v in values:
    print("{:10s} {}".format(v, bool(re.match("^[0-9]{6}\Z", v))))


123456     True
098765     True
Invalid:   False
123        False
12345a     False
as3445     False
/n123456   False
123456
    False

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM