[英]Regular expression problem
我在asp.net電子郵件測試框中有以下正則表達式:
([a-zA-Z0-9_\-\.]+)\@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))
此正則表達式僅適用於
xxx@base.co.uk
xxx@base.com
xxx@group.com
它不適用於:
xxx@arg.co.uk
xxx@arggroup.com
請幫我
這個:
[a-zA-Z0-9_-.]
包含偽造范圍,下划線為點。 您是說“下划線,破折號或點”嗎?
[a-zA-Z0-9_\-.]
? 一旦我解決了,它對我有用。
您還應該使用\\.
而不是.
在地址中-點匹配任何字符,因此您將baseXcom
與您的模式匹配。 (請注意,在[]
秒內,點不需要反斜杠。)
完整的更正表達式:
@"([a-zA-Z0-9_\-.]+)@((base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com))"
(請注意,我正在使用@""
以避免反斜杠。)
盡管我沒有找到確切的問題,但是您在這里錯過了/忽略了重要的一點。 :-)
'.'
是正則表達式中的通配符,它匹配任何東西。
匹配 '。' 采用
\.
讓我們嘗試一下
([a-zA-Z0-9_\-.]+)@(base\.co\.uk)|(base\.com)|(group\.com)|(arg\.co\.uk)|(arggroup\.com)
在這里使用正則表達式測試器可能會為您提供幫助。 但是,據我所知,正則表達式中存在一個錯誤,應防止它與任何示例一起使用:該組應為:
[-a-zA-Z0-9_.]
有了該修復程序,它就可以處理所有示例。 _
和_
之間有-
.
試圖構造一個范圍,但是ASCII值的順序錯誤。
另外,末尾使用的點應轉義為base\\.com
而不是base.com
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.