Questions tagged «regex»

正则表达式提供了一种声明性语言来匹配字符串中的模式。它们通常用于字符串验证,解析和转换。由于正则表达式尚未完全标准化,因此带有此标签的所有问题还应包括一个标签,用于指定适用的编程语言或工具。注意:询问HTML,JSON等正则表达式往往会产生负面反应。如果有解析器,请改用它。

4
环视是否会影响正则表达式可以匹配哪些语言?
现代正则表达式引擎中有一些功能,这些功能使您可以匹配没有该功能就无法匹配的语言。例如,以下使用反向引用的正则表达式会匹配由重复一个单词组成的所有字符串的语言:(.+)\1。该语言不是常规语言,不能与不使用反向引用的正则表达式匹配。 环视还会影响正则表达式可以匹配哪些语言吗?即有没有可以使用环视匹配的语言,否则无法匹配?如果是这样,对环视的所有风格(负向或正向超前或向后看)还是仅对其中某些而言,这是正确的吗?

2
为什么\ R在Java 8和Java 9之间的正则表达式中表现不同?
以下代码在Java 8和9中都可以编译,但是行为不同。 class Simple { static String sample = "\nEn un lugar\r\nde la Mancha\nde cuyo nombre\r\nno quiero acordarme"; public static void main(String args[]){ String[] chunks = sample.split("\\R\\R"); for (String chunk: chunks) { System.out.println("Chunk : "+chunk); } } } 当我使用Java 8运行它时,它返回: Chunk : En un lugar de la Mancha de cuyo …
78 java  regex  unicode  java-8  java-9 

3
在哪里可以找到多种语言的正则表达式的单元测试?
我正在http://www.debuggex.com上构建正则表达式帮助器。我想显示的细节量要求我编写自己的解析器和匹配器。 为了确保解析器和匹配器正常工作,我针对正则表达式的Javascript编写了自己的单元测试,但是这些仅涵盖了我所知道的边缘情况。我想使用一个标准的测试套件,最近指向我将要使用的http://hg.ecmascript.org/tests/test262/summary。 我的问题是,在哪里可以找到其他正则表达式口味的测试套件?我希望将来能支持其他口味。我无法通过谷歌搜索找到任何东西(“测试”会用正则表达式测试器污染结果)。我正在寻找针对python,php,perl,java,ruby和.net语言的测试套件。
78 java  php  javascript  .net  regex 

6
JS正则表达式按行拆分
您如何将一长段文本分成几行?为什么此返回line1两次? /^(.*?)$/mg.exec('line1\r\nline2\r\n'); [“ line1”,“ line1”] 我打开多行修改,以使^与$匹配的开始和行结束。我还打开了全局修饰符以捕获所有行。 我希望使用正则表达式拆分,而不是String.split因为我将同时处理Linux\n和Windows\r\n行尾。

2
在Postgres的WHERE中使用正则表达式
我目前有以下查询: select regexp_matches(name, 'foo') from table; 我该如何重写它,以便正则表达式位于如下所示的位置(不起作用): select * from table where regexp_matches(name, 'foo'); 当前错误消息是:错误:WHERE的参数必须为布尔型,而不是text [] SQL状态:42804字符:29
78 regex  postgresql 


9
SQL Replace函数中的正则表达式模式?
SELECT REPLACE('<strong>100</strong><b>.00 GB', '%^(^-?\d*\.{0,1}\d+$)%', ''); 我想用上面的正则表达式替换数字两部分之间的任何标记,但是似乎不起作用。我不确定是不是正则表达式语法错误,因为我尝试了一种更简单的方法(例如'%[^0-9]%'只是为了进行测试),但是它也不起作用。有人知道我该怎么做到吗?
78 sql-server  regex 

7
Grep和Python
我需要一种通过Unix命令行中的正则表达式使用grep搜索文件的方法。例如,当我在命令行中键入时: python pythonfile.py 'RE' 'file-to-be-searched' 我需要'RE'在文件中搜索正则表达式并打印出匹配的行。 这是我的代码: import re import sys search_term = sys.argv[1] f = sys.argv[2] for line in open(f, 'r'): if re.search(search_term, line): print line, if line == None: print 'no matches found' 但是当我输入一个不存在的单词时,no matches found不会打印
78 python  regex  grep 

4
将Ruby正则表达式拆分为多行
这可能不是您期望的问题!我不希望能在换行符上匹配的正则表达式;相反,我想编写一个长的正则表达式,出于可读性考虑,我想拆分成多行代码。 就像是: "bar" =~ /(foo| bar)/ # Doesn't work! # => nil. Would like => 0 能做到吗

2
如何在正则表达式中处理\ ^ $。?* | +()[{等特殊字符?
我想匹配一个正则表达式特殊字符,\^$.?*|+()[{。我试过了: x <- "a[b" grepl("[", x) ## Error: invalid regular expression '[', reason 'Missing ']'' (相当于stringr::str_detect(x, "[")或stringi::stri_detect_regex(x, "[")。) 将值加倍以使其无法逸出: grepl("[[", x) ## Error: invalid regular expression '[[', reason 'Missing ']'' 也不使用反斜杠: grepl("\[", x) ## Error: '\[' is an unrecognized escape in character string starting ""\[" 如何匹配特殊字符? 在一些古老而又写得很好的问题中,对此有一些特殊情况,以至于像它的副本一样厚脸皮地关闭: R正则表达式 中的转义符如何在R中转义问号? 在正则表达式中转义管道(“ …
78 regex  r  r-faq 

4
如何使用正则表达式查找重叠的匹配项?
>>> match = re.findall(r'\w\w', 'hello') >>> print match ['he', 'll'] 由于\ w \ w表示两个字符,因此应使用'he'和'll'。但是,为什么“ el”和“ lo”与正则表达式不匹配? >>> match1 = re.findall(r'el', 'hello') >>> print match1 ['el'] >>>

5
正则表达式匹配一定长度的单词
我想知道正则表达式可以匹配单词,以使单词具有最大长度。例如,如果一个单词的最大长度为10个字符,我希望正则表达式匹配,但是如果长度超过10个,则正则表达式不匹配。 我试过了 ^(\w{10})$ 但这仅在单词的最小长度为10个字符的情况下为我带来匹配。如果单词超过10个字符,它仍然匹配,但仅匹配前10个字符。
78 java  regex 

4
c ++ 11 regex比python慢
嗨,我想了解为什么下面的代码使用正则表达式进行拆分字符串拆分 #include<regex> #include<vector> #include<string> std::vector<std::string> split(const std::string &s){ static const std::regex rsplit(" +"); auto rit = std::sregex_token_iterator(s.begin(), s.end(), rsplit, -1); auto rend = std::sregex_token_iterator(); auto res = std::vector<std::string>(rit, rend); return res; } int main(){ for(auto i=0; i< 10000; ++i) split("a b c", " "); return 0; } 则慢于以下python代码 import re …


9
如何使用正则表达式删除括号内的文本?
我正在尝试处理一堆文件,然后需要进行修改以删除文件名中的无关信息;值得注意的是,我正在尝试删除括号内的文本。例如: filename = "Example_file_(extra_descriptor).ext" 我想对一整堆文件进行正则表达式,其中括号表达式可能在中间或结尾,并且长度可变。 正则表达式是什么样的?首选Perl或Python语法。
77 python  regex  perl 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.