簡體   English   中英

正則表達式問題

[英]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.

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