Questions tagged «regex»

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

30
在大写字母之前添加空格
给定字符串“ ThisStringHasNoSpacesButItDoesHaveCapitals”,什么是在大写字母之前添加空格的最佳方法。因此,结束字符串将为“此字符串没有空格,但确实有大写字母” 这是我对RegEx的尝试 System.Text.RegularExpressions.Regex.Replace(value, "[A-Z]", " $0")
193 c#  regex  string 

7
用于JavaScript中字符串匹配的switch语句
我该如何为以下条件写一个swtich? 如果网址包含 “ foo”,则settings.base_url为“ bar”。 以下实现了所需的效果,但是我感觉这在切换中将更易于管理: var doc_location = document.location.href; var url_strip = new RegExp("http:\/\/.*\/"); var base_url = url_strip.exec(doc_location) var base_url_string = base_url[0]; //BASE URL CASES // LOCAL if (base_url_string.indexOf('xxx.local') > -1) { settings = { "base_url" : "http://xxx.local/" }; } // DEV if (base_url_string.indexOf('xxx.dev.yyy.com') > -1) { settings = …

6
用正则表达式仅替换某些组
假设我有以下正则表达式: -(\d+)- 我想使用C#将Group 1 (\d+)替换为AA,以获得: -AA- 现在,我使用以下方法替换它: var text = "example-123-example"; var pattern = @"-(\d+)-"; var replaced = Regex.Replace(text, pattern, "-AA-"); 但是我不是很喜欢这样,因为如果我改为更改模式以匹配_(\d+)_,那么我也将不得不替换替换字符串_AA_,这违反了DRY原则。 我正在寻找类似的东西: 使匹配的文本保持原样,但将Group 1 by this text和Group 2 by another text... 编辑: 那只是一个例子。我只是在寻找一种做上面所说的通用方法。 它应适用于: anything(\d+)more_text 以及您可以想象的任何模式。 我要做的就是只替换组,并保留其余的比赛。
190 c#  regex  replace 

3
命名正则表达式组“(?P <group_name> regexp)”:“ P”代表什么?
在Python中,该(?P&lt;group_name&gt;…) 语法允许人们通过其名称引用匹配的字符串: &gt;&gt;&gt; import re &gt;&gt;&gt; match = re.search('(?P&lt;name&gt;.*) (?P&lt;phone&gt;.*)', 'John 123456') &gt;&gt;&gt; match.group('name') 'John' “ P”代表什么?我在官方文档中找不到任何提示。 我很想获得有关如何帮助我的学生记住该语法的想法。知道“ P”代表(或可能代表)什么会很有用。

13
正则表达式在单词之间留有空格
我想要一个正则表达式,以防止符号,并且只允许字母和数字。下面的正则表达式效果很好,但不允许单词之间留空格。 ^[a-zA-Z0-9_]*$ 例如,使用此正则表达式时,“ HelloWorld”很好,但“ Hello World”不匹配。 如何调整它以留出空间?

9
不以给定后缀结尾的字符串的正则表达式
我无法找到合适的正则表达式来匹配不以某种条件结尾的任何字符串。例如,我不希望匹配以结尾的任何内容a。 这个匹配 b ab 1 这不匹配 a ba 我知道正则表达式应该$以标记结束而告终,尽管我不知道该怎么做。 编辑:原始问题似乎不是我的案例的合法例子。那么:如何处理多个字符?说什么不以ab? 我已经可以使用以下线程解决此问题: .*(?:(?!ab).).$ 尽管这样做的缺点是,它与一个字符的字符串不匹配。
188 regex 

5
正则表达式将字符数限制为10
我正在尝试写一个 仅允许小写字母和最多10个字符正则表达式。我到目前为止所拥有的看起来像这样: pattern: /^[a-z]{0,10}+$/ 这不起作用或无法编译。我有一个工作的,只允许使用小写字母,这是: pattern: /^[a-z]+$/ 但是我需要将字符数限制为10个。
187 regex 

30
RegEx用于匹配英国邮政编码
我正在使用一个正则表达式,它将仅在输入字符串内验证完整的复杂英国邮政编码。所有不常见的邮政编码形式都必须像往常一样覆盖。例如: 火柴 CW3 9SS SE5 0EG SE50EG se5 0eg WC2H 7LT 没有比赛 aWC2H 7LT WC2H 7LTa WC2H 我该如何解决这个问题?

7
RE错误:Mac OS X上的非法字节序列
我正在尝试替换Mac OS X上Makefile中的字符串以交叉编译到iOS。该字符串具有嵌入的双引号。该命令是: sed -i "" 's|"iphoneos-cross","llvm-gcc:-O3|"iphoneos-cross","clang:-Os|g' Configure 错误是: sed: RE error: illegal byte sequence 我尝试用双引号,逗号,破折号和冒号进行转义,但没有任何乐趣。例如: sed -i "" 's|\"iphoneos-cross\"\,\"llvm-gcc\:\-O3|\"iphoneos-cross\"\,\"clang\:\-Os|g' Configure 我花了点时间调试问题。有谁知道如何sed打印非法字节序列的位置?还是有人知道非法字节序列是什么?
184 regex  macos  bash  sed 

1
python re.sub组:\ number之后的数字
如何替换foobar为foo123bar? 这不起作用: &gt;&gt;&gt; re.sub(r'(foo)', r'\1123', 'foobar') 'J3bar' 这有效: &gt;&gt;&gt; re.sub(r'(foo)', r'\1hi', 'foobar') 'foohibar' 我认为,遇到时,这是一个普遍的问题\number。谁能给我一个关于如何处理的提示?

8
该怎么做正则表达式模式在字符串的任何地方都不匹配?
我正在尝试&lt;input&gt;使用此模式匹配类型“隐藏”的字段: /&lt;input type="hidden" name="([^"]*?)" value="([^"]*?)" /&gt;/ 这是样本表单数据: &lt;input type="hidden" name="SaveRequired" value="False" /&gt;&lt;input type="hidden" name="__VIEWSTATE1" value="1H4sIAAtzrkX7QfL5VEGj6nGi+nP" /&gt;&lt;input type="hidden" name="__VIEWSTATE2" value="0351118MK" /&gt;&lt;input type="hidden" name="__VIEWSTATE3" value="ZVVV91yjY" /&gt;&lt;input type="hidden" name="__VIEWSTATE0" value="3" /&gt;&lt;input type="hidden" name="__VIEWSTATE" value="" /&gt;&lt;input type="hidden" name="__VIEWSTATE" value="" /&gt; 但我不知道的type,name和value属性将始终出现在相同的顺序。如果type属性排在最后,则匹配将失败,因为在我的模式中,匹配是从头开始的。 问题: 如何更改样式,使其与&lt;input&gt;标签中属性的位置无关,都可以匹配? PS:顺便说一句,我正在使用基于Adobe Air的RegEx桌面工具来测试正则表达式。
181 html  regex  parsing 

3
Grep正则表达式不包含字符串
我正在传递正则表达式模式列表grep以检查syslog文件。它们通常与IP地址和日志条目匹配; grep "1\.2\.3\.4.*Has exploded" syslog.log 这只是"1\.2\.3\.4.*Has exploded"循环中要传递的部分的模式列表,例如,我不能传递“ -v”。 我很困惑尝试执行上述操作,不匹配具有特定IP地址和错误的行,因此“!1.2.3.4。*已爆炸”将匹配syslog行,而不是1.2.3.4,告诉我它已爆炸。我必须能够包含不匹配的IP。 我在StackOverflor上看到了许多类似的帖子,但是他们使用了我似乎无法使用的正则表达式模式grep。谁能提供一个可行的例子grep? 更新: 这是在这样的脚本中发生的; patterns[1]="1\.2\.3\.4.*Has exploded" patterns[2]="5\.6\.7\.8.*Has died" patterns[3]="\!9\.10\.11\.12.*Has exploded" for i in {1..3} do grep "${patterns[$i]}" logfile.log done
181 regex  grep 

7
如何在保留原始字符串的同时对字符串执行Perl替换?
在Perl中,有什么好方法可以使用正则表达式对字符串进行替换并将值存储在不同的变量中,而无需更改原始值? 我通常只是将字符串复制到新变量,然后将其绑定到s///对新字符串进行替换的正则表达式,但是我想知道是否有更好的方法来做到这一点? $newstring = $oldstring; $newstring =~ s/foo/bar/g;
179 regex  perl  replace 



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.