关键词:
【中文标题】正则表达式:\\w - UTF-8 中的“_”+“-”【英文标题】:RegEx: \w - "_" + "-" in UTF-8正则表达式:\w - UTF-8 中的“_”+“-” 【发布时间】:2011-01-04 22:51:10 【问题描述】:我需要一个匹配 UTF-8 字母和数字、破折号 (-
) 但不匹配下划线 (_
) 的正则表达式,我尝试了这些愚蠢的尝试但没有成功:
([\w-^_])+
([\w^_]-?)+
(\w[^_]-?)+
\w
是 [A-Za-z0-9_]
的简写,但如果我设置了 u
修饰符,它也匹配 UTF-8 字符。
谁能帮我解决这个问题?
【问题讨论】:
请具体说明“UTF-8 字母” - 你能确认你想要的不仅仅是英文字符吗? @meder:我想要英文和重音/外来字符。 【参考方案1】:试试这个:
(?:[\w\-](?<!_))+
它对编码为 \w(或破折号)的任何内容进行简单匹配,然后具有零宽度的后视功能,以确保刚刚匹配的字符不是下划线。
否则你可以选择这个:
(?:[^_\W]|-)+
这是一种更加基于集合的方法(注意大写的 W)
好的,我在 php 的 PCRE 风格中使用 unicode 获得了很多乐趣:D Peekaboo 说有一个简单的解决方案:
[\pL\pN\-]+
\pL 匹配任何符合字母条件的 unicode(注意:不是单词字符,因此没有下划线),而 \pN 匹配任何看起来像数字的东西(包括罗马数字和更奇特的东西)。 \- 只是一个转义的破折号。虽然不是绝对必要,但我倾向于在字符类中转义破折号...注意,在 unicode 中有许多不同的破折号,因此产生了以下版本:
[\pL\pN\pPd]+
其中“Pd”是标点破折号,包括但不限于我们的减号破折号。 (注意,这里再次没有下划线)。
【讨论】:
将否定 \W 不包括连字符? @dionadar - 这与我的重音字符不匹配。 @codadict 据我所知,连字符不包含在 \w 中——即使是这样,这样说也无妨;) @meder OP 声明:“如果我设置了 u 修饰符,\w [...] 也匹配 UTF-8 字符。” \pN 包括各种数字 - afaik Nd 跳 0-9 舞,而 Nl 包括罗马文字(在 unicode 中,罗马 1 不是字母 I,而是看起来喜欢它)和 No 几乎是他们在其他两个中找不到的所有东西,但仍然是一个数字。【参考方案2】:我不确定您使用哪种语言,但在 PERL 中您可以简单地编写:[[:alnum:]-]+ 设置正确的语言环境。
【讨论】:
很高兴知道,但我使用的是 PHP(PCRE 引擎)。 在 PHP 和 Rubular (Ruby) 中尝试过,请参阅 rubular.com/regexes/12922 和 rubular.com/regexes/12923。 [:alnum:] 可以在 PCRE 中替换为 \pIsAlnum 你可以尝试 \pL\pN常用正则表达式
匹配中文字符:[u4e00-u9fa5]匹配双字节字符(包括汉字在内):[^x00-xff]匹配空白行: s* 匹配Email地址:[w!#$%&‘*+/=?^_`{|}~-]+(?:.[w!#$%&‘*+/=?^_`{|}~-]+)*@(?:[w](?:[w-]*[w])?.)+[w](?:[w-]*[w])?匹配国内电话号码:d{3}-d{ 查看详情
正则表达式中的 ^ 和 $ 是啥意思?
】正则表达式中的^和$是啥意思?【英文标题】:Whatdo^and$meaninaregularexpression?正则表达式中的^和$是什么意思?【发布时间】:2020-01-1113:34:13【问题描述】:"\\\\w+@\\\\w+[.]\\\\w+"和"^\\\\w+@\\\\w+[.]\\\\w+$"有什么区别?我... 查看详情
正则表达式中的 ^ 和 $ 是啥意思?
】正则表达式中的^和$是啥意思?【英文标题】:Whatdo^and$meaninaregularexpression?正则表达式中的^和$是什么意思?【发布时间】:2022-01-2320:44:18【问题描述】:"\\\\w+@\\\\w+[.]\\\\w+"和"^\\\\w+@\\\\w+[.]\\\\w+$"有什么区别?我... 查看详情
正则表达式中的 ^ 和 $ 是啥意思?
】正则表达式中的^和$是啥意思?【英文标题】:Whatdo^and$meaninaregularexpression?正则表达式中的^和$是什么意思?【发布时间】:2011-10-1800:48:25【问题描述】:"\\\\w+@\\\\w+[.]\\\\w+"和"^\\\\w+@\\\\w+[.]\\\\w+$"有什么区别?我... 查看详情
正则表达式中的 ^ 和 $ 是啥意思?
】正则表达式中的^和$是啥意思?【英文标题】:Whatdo^and$meaninaregularexpression?正则表达式中的^和$是什么意思?【发布时间】:2022-01-2206:55:14【问题描述】:"\\\\w+@\\\\w+[.]\\\\w+"和"^\\\\w+@\\\\w+[.]\\\\w+$"有什么区别?我... 查看详情
正则表达式
https://www.oschina.net/question/12_9507中括号[abc] 表示匹配上中括号中的任一个字符均可[0-9]只匹配数字等同于[d][a-zA-Z0-9_]==[w][0-9]+表示匹配任一个数字匹配无数次[0-9]{9}匹配9次 代码说明.匹配除换行符以外的任意字符w匹配字... 查看详情
如何使用正则表达式指定字符串分隔符?
】如何使用正则表达式指定字符串分隔符?【英文标题】:Howtospecifystringdelimiterusingregex?【发布时间】:2022-01-2306:03:27【问题描述】:我有一个字符串\'w_600,h_600/c_overlay:c_fit,w_570,h_256/c_crop,w_600,h_600/main_image,g_center,y_-157,x_0/c_overlay:c... 查看详情
251正则表达式(代码片段)
1.正则表达式概述1.1什么是正则表达式正则表达式(RegularExpression)是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式也是对象。正则表通常被用来检索、替换那些符合某个模式(规则)的文本,例如验证表单:用... 查看详情
PHP正则表达式中的UTF-8 [重复]
】PHP正则表达式中的UTF-8[重复]【英文标题】:UTF-8inPHPregularexpressions[duplicate]【发布时间】:2011-09-1811:25:21【问题描述】:我需要正则表达式方面的帮助。我的字符串包含unicode字符,下面的代码不起作用。前四个字符必须是数字... 查看详情
正则表达式re模块
#在线调试工具:tool.oschina.net/regex/#importre#w匹配字母数字下划线W:非字母数字下划线#print(re.findall(‘w‘,‘as213df_*|d‘))#[‘a‘,‘s‘,‘2‘,‘1‘,‘3‘,‘d‘,‘f‘,‘_‘,‘d‘]#print(re.findall(‘W‘,‘as213df_*|d‘))#[‘*‘,‘|‘]#print(... 查看详情
utf-8中的php正则表达式单词边界匹配
】utf-8中的php正则表达式单词边界匹配【英文标题】:phpregexwordboundarymatchinginutf-8【发布时间】:2011-01-2620:00:35【问题描述】:我在utf-8php文件中有以下php代码:var_dump(setlocale(LC_CTYPE,\'de_DE.utf8\',\'German_Germany.utf-8\',\'de_DE\',\'german\'))... 查看详情
正则表达式(代码片段)
用户名正则,4-16位(字母、数字、下划线、减号)^[a-z0-9_-](4,16)$密码强度正则(最少六位,至少包括一个大写字母、一个小写字母、一个数字、一个特殊符号)^[A-Z+a-z+0-9+]((?=[x21-x7e]+)[^A-Za-z0-9])6,$email正则(来自网络)^w+([-+.]w+)*@... 查看详情
d21_1.1_正则表达式_单个字符匹配
#### re.findall 找到所有与正则表达式相匹配的字符串语法:lst=re.findall(正则表达式,字符串)#(1)预定义字符集#d匹配数字#D匹配非数字#w匹配字母或数字或下划线(正则函数中,支持中文的匹配)#W匹配非字母或数字或下划线#s匹配任... 查看详情
正则表达式前瞻丢弃匹配
】正则表达式前瞻丢弃匹配【英文标题】:Regexlookaheaddiscardamatch【发布时间】:2021-11-1523:16:54【问题描述】:我正在尝试进行正则表达式匹配,它完全放弃了前瞻。\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*这是比赛,这是我的regex10... 查看详情
正则表达式 - 还提取带有 www 的 URL
】正则表达式-还提取带有www的URL【英文标题】:Regex-ExtractalsoURLswithwww【发布时间】:2021-04-1615:22:44【问题描述】:我使用这个正则表达式来查找URL:(http|ftp|https):\\/\\/([\\w\\-_]+(?:(?:\\.[\\w\\-_]+)+))([\\w\\-\\.,@?^=%&:/~\\+#]*[\\w\\-\\@?... 查看详情
正则表达式
字符类字符类与一组字符中的任何一个字符匹配。 . 通配符:与除 之外的任何单个字符匹配。 若要匹配原意句点字符(.或u002E),您必须在该字符前面加上转义符(.)。a.e"have"中的"ave","mate"中的"ate"w与任何... 查看详情
python正则表达式抓取邮箱(代码片段)
emailRegex=r"[-_\w\.]0,64@([-\w]1,63\.)*[-\w]1,63"email=re.search(emailRegex,"str")用户名中字符主要有大小写字母,下划线_,阿拉伯数字,点号。并且有长度限制0,64,用字符组限制为[-_\w\.]0,64中间用@分割开主机名则有多种情况,通过域名... 查看详情
.Net 正则表达式:单词字符 \w 是啥?
】.Net正则表达式:单词字符\\\\w是啥?【英文标题】:.Netregex:whatisthewordcharacter\\w?.Net正则表达式:单词字符\\w是什么?【发布时间】:2011-03-0105:20:55【问题描述】:简单的问题:c#、.net中\\w这个词的模式是什么?我的第一个想... 查看详情