Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式中的大写字母_Regex_Perl_Sublimetext2 - Fatal编程技术网

Regex 正则表达式中的大写字母

Regex 正则表达式中的大写字母,regex,perl,sublimetext2,Regex,Perl,Sublimetext2,我对正则表达式一无所知,但我需要将变量($name)转换为大写。 有人知道怎么做吗 另外,什么是学习正则表达式的好网站?你真的需要使用正则表达式吗?如果没有,请查看perltr///操作符文本板将允许您执行此操作 例如: test 查找内容:([^])(.)替换为:\U\1\E\2 结果将是: TEST 你可以试试 s/(\pL+)/\U$1/g 捕获参数将查找字母,\U将对$1中捕获的文本应用uc功能。/g修饰符将在整个字符串中重复匹配 对于更通用的正则表达式,您可以尝试 s/(.*

我对正则表达式一无所知,但我需要将变量($name)转换为大写。 有人知道怎么做吗


另外,什么是学习正则表达式的好网站?

你真的需要使用正则表达式吗?如果没有,请查看perl
tr///
操作符

文本板将允许您执行此操作

例如:

test 
查找内容:([^])(.)替换为:\U\1\E\2

结果将是:

TEST 
你可以试试

s/(\pL+)/\U$1/g
捕获参数将查找字母,
\U
将对
$1
中捕获的文本应用
uc
功能。
/g
修饰符将在整个字符串中重复匹配

对于更通用的正则表达式,您可以尝试

s/(.*)/\U\1/g

…其中它匹配所有字符,
\1
是旧式的捕获序列

你把整个字符串都改成大写了吗?如果是,就用“string.toUpperCase()(如果是JS)-你用的是什么语言?是的,整个字符串。我需要使用Perl正则表达式语法“我需要使用…”这是家庭作业还是什么?嗯,是你的权利,我根本不能使用Perl语法。我不应该提到Perl。这只是关于正则表达式正则表达式用于定义模式,所以它们是不够的。您需要找到替换匹配字符串的方法,这是您肯定有的。您还需要根据匹配的字符串有条件地替换匹配的字符串。这需要能够定义要执行的代码,以确定要用作替换字符串的字符串。ST2有这种能力吗?您询问如何转换变量(我认为您指的是它的值),因此我认为您可以使用某种编程语言(或者您没有变量),因此这可能是可能的。这就是我试图实现的目标,但不必编写“查找内容”和“替换为”。不使用“查找内容”和“替换为”?创建新文件时,通过“文件模板”“升华文本2中的扩展名,我想在
中用大写版本替换$name#ifndef$name_H#define$name_H
。我尝试使用Find what and Replace with bu,但它不起作用。例如,sublime text 2中的一个片段如下所示:''似乎是个好主意,但我不能只使用Perl语法正则表达式。我提到了perl,但这只是因为sublime text 2网站提到了它。那是个错误。@Atha好吧,那是正则表达式
s/(\pL+)/\U$1/g
。我不知道它是如何在崇高的文本中实现的。对于更通用的正则表达式,您可以尝试
s/(.*)/\U\1/g
,其中它匹配所有字符,
\1
是旧的捕获序列。谢谢!我想我会给sublime开发团队发电子邮件,让他们了解更多关于这个的信息。@Atha哪个regex为您工作过?也许可以添加到答案中。嗯,我看到您使用了
\$name
而不是
$name
,也许这与此有关。