正则表达式无法按预期工作

时间:2009-06-10 22:12:26

标签: regex

这个正则表达式如何返回_ _下划线作为最后一个字符的字符串呢?

它应该只返回带有字母字符的字符串,混合使用大写和小写字母。

However, the regular expression returns: 'action_'

 $regEx = '/^([a-zA-Z])[a-zA-Z]*[\S]$|^([a-zA-Z])*[\S]$|^[a-zA-Z]*[\S]$/';

4 个答案:

答案 0 :(得分:5)

因为\ S表示“不是空白字符”,\ S匹配_

一个小组不应该有一个下划线,所以,如果你的意思是,你可能会得到整个比赛,而不仅仅是第一组。

如果需要,请说明如何使用正则表达式来澄清这一点。

答案 1 :(得分:2)

[\S]将匹配所有非空格的内容,包括下划线。


而且,你的表达很奇怪!

如果您想要一个仅包含字母的字符串,请使用^[a-zA-Z]*$^[a-zA-Z]+$(取决于是否允许空白)。

如果您正在尝试做其他事情,则需要扩展它的内容。

答案 2 :(得分:0)

\ S匹配任何非空白字符 - 因此_

答案 3 :(得分:0)

您应该显示文本以及要从中提取的部分。 正则表达式不应该像你的那样大。

处理小型表达批次......在这个规模上,很难帮助你。