Questions tagged «regex»

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


3
。*和有什么不一样?和。*正则表达式?
我正在尝试使用正则表达式将字符串分成两部分。字符串的格式如下: text to extract<number> 我一直在使用(.*?)<,<(.*?)>并且工作正常,但是在阅读了正则表达式后,我才开始怀疑为什么?在表达式中需要使用。在通过本网站找到他们之后,我才这样做,所以我不确定是否有什么区别。



12
Javascript:否定的后向等效?
有没有办法实现负面的回望在javascript正则表达式中?我需要匹配一个不以特定字符集开头的字符串。 如果在字符串的开头找到匹配的部分,似乎无法找到执行此操作的正则表达式。负向后看似是唯一的答案,但是javascript没有答案。 编辑:这是我想工作的正则表达式,但它不: (?<!([abcdefg]))m 因此它将与“ jim”或“ m”中的“ m”匹配,但与“ jam”不匹配

3
为什么String.split需要对管道定界符进行转义?
我试图解析一个文件,该文件的每一行都用管道定界值。当我没有在split方法中转义管道定界符时,它不能正常工作,但是在我如下所示转义管道后,它却可以正常工作。 private ArrayList<String> parseLine(String line) { ArrayList<String> list = new ArrayList<String>(); String[] list_str = line.split("\\|"); // note the escape "\\" here System.out.println(list_str.length); System.out.println(line); for(String s:list_str) { list.add(s); System.out.print(s+ "|"); } return list; } 有人可以解释为什么该split()方法需要转义管道字符吗?
140 java  regex  string 



6
有什么方法可以将恶意代码放入正则表达式中?
我想在我的公共网页上添加正则表达式搜索功能。除了对输出进行HTML编码之外,我还需要采取其他措施来防止恶意用户输入吗? 解决正反问题的人们淹没了Google搜索-使用正则表达式检测恶意输入-我对此并不感兴趣。在我的情况下,用户输入是一个正则表达式。 我将在.NET(C#)中使用Regex库。
138 regex  security 

11
如何在JavaScript中将长正则表达式拆分为多行?
我有一个很长的正则表达式,我希望在JavaScript代码中将其分成多行,以根据JSLint规则将每行长度保持80个字符。我认为这对阅读更好。这是模式样本: var pattern = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

6
使用字符串变量即时创建RegExps
假设我想使以下内容可重复使用: function replace_foo(target, replacement) { return target.replace("string_to_replace",replacement); } 我可能会做这样的事情: function replace_foo(target, string_to_replace, replacement) { return target.replace(string_to_replace,replacement); } 使用字符串文字,这很容易。但是,如果我想对正则表达式更加棘手,该怎么办?例如,说我要替换,而是 string_to_replace。本能地,我会尝试通过以下方式扩展上述内容: function replace_foo(target, string_to_replace, replacement) { return target.replace(/^string_to_replace/,replacement); } 这似乎不起作用。我的猜测是它认为string_to_replace是字符串文字,而不是代表字符串的变量。是否可以使用字符串变量即时创建JavaScript正则表达式?如果可能的话,这样的事情会很棒: function replace_foo(target, string_to_replace, replacement) { var regex = "/^" + string_to_replace + "/"; return target.replace(regex,replacement); }
138 javascript  regex 

19
PHP Regex获取youtube视频ID?
有人可以告诉我如何从网址中获取youtube ID,而不管网址中还有哪些其他GET变量。 例如,使用此视频:http://www.youtube.com/watch?v=C4kxS1ksqtw&feature=related 因此v=,在下一个之间和之前&
137 php  regex 

7
根据模式提取子字符串
假设我有一个字符串列表: string = c("G1:E001", "G2:E002", "G3:E003") 现在,我希望得到一个字符串向量,该向量仅包含冒号“:”之后的部分,即substring = c(E001,E002,E003)。 R中有方便的方法吗?使用substr?
136 regex  r  substr 

7
用一个空格替换所有非字母数字字符,换行和多个空格
我正在寻找可替代的整洁RegEx解决方案 所有非字母数字字符 所有换行 空白的所有多个实例 一个空格 对于那些在家里玩的人(以下方法有效) text.replace(/[^a-z0-9]/gmi, " ").replace(/\s+/g, " "); 我的想法是RegEx可能强大到足以在一句话中实现这一目标。我认为需要的组件是 [^a-z0-9] -删除非字母数字字符 \s+ -匹配任何空间集合 \r?\n|\r -匹配所有新行 /gmi -全局,多行,不区分大小写 但是,我似乎无法以正确的方式设置正则表达式的样式(以下内容无效) text.replace(/[^a-z0-9]|\s+|\r?\n|\r/gmi, " "); 输入项 234&^%,Me,2 2013 1080p x264 5 1 BluRay S01(*&asd 05 S1E5 1x05 1x5 期望的输出 234 Me 2 2013 1080p x264 5 1 BluRay S01 asd 05 …

12
正则表达式中的单词边界是什么?
我在Java 1.6中使用Java正则表达式(解析数字输出,除其他用途外),但找不到\b(“字边界”)的精确定义。我以为-12这是一个“整数词”(由匹配 \b\-?\d+\b),但看来这是行不通的。我很高兴知道匹配空格的数字的方法。 例: Pattern pattern = Pattern.compile("\\s*\\b\\-?\\d+\\s*"); String plus = " 12 "; System.out.println(""+pattern.matcher(plus).matches()); String minus = " -12 "; System.out.println(""+pattern.matcher(minus).matches()); pattern = Pattern.compile("\\s*\\-?\\d+\\s*"); System.out.println(""+pattern.matcher(minus).matches()); 返回: true false true

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.