Tag: regex

部分URL的RegEx模式(在路径中打开两个值)

我有一个URL模式,需要包含APPLES或ORANGES,没有其他值。 可选地,它还可以具有查询参数。 我尝试了一些RegEx模式,但我无法得到一个尊重严格匹配的模式。 示例url 好 http://www.website.com/en/pages/APPLES http://www.website.com/en/pages/APPLES?k=v http://www.website.com/en/pages/ORANGES?k=v&k2=v2 http://www.website.com/en/pages/ORANGES 坏 http://www.website.com/en/pages/APPLES???k=v http://www.website.com/en/pages/APPLES?k=v=v http://www.website.com/en/pages/APPLESORANGES http://www.website.com/en/pages/1APPLES http://www.website.com/en/APPLES 尝试过RegEx模式 (好吧,至少是最好的尝试) (http://*.*.website*.*.com/*.*/pages(/APPLES)|(/ORANGES)[\?]*.*) (http://*.*.website*.*.com/*.*/pages(/APPLES|/ORANGES)[\?]*.*) 如果你很好奇,我故意要允许任何子域,后缀“网站”(针对不同的环境),以及.com /和/ pages之间的任何路径,因此使用。 在很多地方。 实现这一目标的最佳方法是什么? **编辑:最终答案** 我的最终答案是从math.coffee和fardjad合并而来。 ^https?://.*\.website\b.*\.com/.*/pages/(APPLES\b|ORANGES\b)((\?\w+=\w+)(&?\w+=\w+)*)?$ 我发现的一个限制是它不允许查询字符串参数key = value对中的一些有效字符(.~_-%+)(参见: http : //en.wikipedia.org/wiki/Query_string #Structure )。 这对我来说不是问题,因为我匹配从.NET的Uri类返回的字符串,所以我知道URL总体上是格式良好的。

如果逗号不在两个双引号之间,请用逗号分隔

我想用逗号分割这样的字符串: field1:”value1″, field2:”value2″, field3:”value3,value4″ 到一个看起来像的string[] : 0 field1:”value1″ 1 field2:”value2″ 2 field3:”value3,value4″ 我试图用Regex.Split做到这一点,但似乎Regex.Split正则表达式。

帮助修复BBcode正则表达式

我有一个抓住bbcode标签的正则表达式。 除了小故障外,它的效果很好。 这是当前的表达式: \[([^=\[\]]+)[=\x22′]*([^ \[\]]*)[‘\x22]*\](.+)\[/\1\] 以下是它成功匹配的一些文本及其构建的组: [url = http://www.google.com]转到谷歌![/ url] 1:url 2: http : //www.google.com 3:去谷歌! [IMG] http://sofzh.miximages.com/c%23/f [/ IMG] 1:img 2:NULL 3: http : //www.somesite.com/someimage.jpg [quote] [quote]第一次嵌套引用[/ quote] [quote]第二次嵌套引用[/ quote] [/ quote] 1:引用 2:NULL 3:[quote]第一次嵌套引用[/ quote] [quote]第二次嵌套引用[/ quote] 所有这一切都很棒。 我可以通过对同一个正则表达式运行第三个匹配组来处理嵌套标记,并递归处理嵌套的所有标记。 问题在于使用[quote]标签的示例。 请注意,第三个匹配组是一组两个引用标记,因此我们期望两个匹配。 但是,我们得到一个匹配,如下所示: [quote]第一次嵌套引用[/ quote] [quote]第二次嵌套引用[/ quote] 1:引用 2:NULL 3:第一次嵌套引用[/ quote] [quote]第二次嵌套引用 哈啊! 这根本不是我们想要的。 […]

正则表达式为字母数字和+字符

我需要一个只允许使用字母数字加上+和 – 字符的正则表达式。 现在我正在使用: [^\w-]

正则表达式用于删除一个空格

删除一个空格的正则表达式是什么? 例如: H ello W orld —-> Hello World (请注意,Hello World之间还有一个空格。它之间有两个空格开头) 仅供参考,我正在使用C#正则表达式:之前我做过类似的事情,但对于上述情况,它无法正常工作: Regex pattern = new Regex(@”[ ]{2,}”); pattern.Replace(content, @” “)

正则表达式.net拆分

我可以根据2个空格将字符串拆分为两个: string Line = “1 2″; Regex.Split(Line, ” “); => 1,2 我想添加一个例外。 如果’未被[]括起,则仅拆分,如本例所示。 string Line = “1 2 [1 2]”; Regex.Split(Line, ” “); => 1,2,[1 2] 我可以通过正则表达式轻松实现这一目标吗? 顺便说一句,我使用.NET。

在\ #c regex中将\ r作为\ n处理

我有一个ac#函数,可以在输入端查找文本模式并进行一些处理。 (我使用的是3.5版本的.net框架) public void func(string s) { Regex r = new Regex(“^\s*Pattern\s*$”, RegexOptions.Multiline | RegexOptions.ExplicitCapture ); Match m = r.Match(s); //Do something with m } 该函数的使用可能如下所示 string s = “Pattern \n Pattern \n non-Pattern”; func(s); 但是,我发现有时我的输入看起来更像这样 string s = “Pattern \r Pattern \r non-Pattern” func(s); 并没有匹配。 有没有办法让\r在正则表达式中被视为\n ? 我想我总是可以用\n s替换所有\r s,但我希望我可以最小化操作,如果我可以让正则表达式一次完成所有操作。

C#和Regex – 无法识别的分组构造

目前正致力于我的客户/服务器应用程序论文。 如果服务器收到这样的信息,我遇到了麻烦: ProToCooL,unknown|DESKTOP-29COFES,10.20.9.53|Hewlett-Packard,179C,PCWJA001X3UHII,KBC Version 42.32|i5-3320M,2.60GHz,2,4,256,3072,U3E1,GenuineIntel|{2,(IDT High Definition Audio CODEC,IDT),(Intel(R) Display Audio,Intel(R) Corporation)}|{2,(Samsung,003355A3,M471B5773DH0-CH9 ,24,2147483648,1333),(Hynix/Hyundai,467CA639,HMT351S6EFR8A-PB ,24,4294967296,1333)}|{1,(IDE,Hitachi HTS725050A7E630, FT51009Y7J61BK,3,733004892,476937.531738281)}|{7,(Send To OneNote 2013,False,Local,Send to Microsoft OneNote 15 Driver),(Microsoft XPS Document Writer,False,Local,Microsoft XPS Document Writer v4),(Microsoft Print to PDF,False,Local,Microsoft Print To PDF),(HP Universal Printing PCL 6,False,Local,HP Universal Printing PCL 6),(HP LaserJet P3010 Series (10.20.9.36),False,Local,HP Universal Printing PCL 6),(Fax,False,Local,Microsoft Shared Fax […]

查找并替换RegEx问题

由于我在其他问题上对SO的所有帮助很大,我开始掌握RegEx。 但我仍然对这个感到厌烦: 我的代码是: StreamReader reader = new StreamReader(fDialog.FileName.ToString()); string content = reader.ReadToEnd(); reader.Close(); 我正在阅读文本文件,我想搜索此文本并进行更改(X和Y值始终在我的文本文件中互相跟随): X17.8Y-1。 但是这个文本也可以是X16.1Y2.3 (在X和Y之后值总是不同的) 我想把它改成这个 X17.8Y-1.G54 要么 X(值)Y(值)G54 我的RegEx声明如下,但它无效。 content = Regex.Replace(content, @”(X(?:\d*\.)?\d+)*(Y(?:\d*\.)?\d+)”, “$1$2G54”); 有人可以为我修改它,以便它可以工作,并将搜索X(通配符)Y(通配符)并将其替换为X(值)Y(值)G54?

C#正则表达式问题

我试图解析以下行: “\#” TEST #comment hello world 在我的输入中,#comment始终位于该行的末尾。 可能有也可能没有评论,但如果有,它总是在行的末尾。 我使用以下正则表达式来解析它: (\#.+)? 我有RegexOption.RightToLeft 。 我期待它能够拉动#comment hello world 。 但相反,它正在拉”#” TEST #comment hello world” 为什么我的Regex表达式没有拉出正确的东西,什么是我需要使其正确拉动的有效Regex表达式?