在做一些小的正则expression式任务时,我遇到了这个问题。 我有一个string,看起来像这样的标签列表: foo,bar,qux,garp,wobble,thud 我需要做的是检查某个标签,例如“garp”是否在这个列表中。 (它最终匹配的东西不是很重要,只是如果有匹配的话)。 我的第一个和有点愚蠢的尝试在这是使用以下正则expression式: [^,]garp[,$] 我的想法是,在“garp”之前,应该是行/string或逗号的开头,在“garp”之后,应该有逗号或行/string的结尾。 现在,这个正则expression式很明显是错误的:^和$在字符类[]的上下文中改变它们的行为。 我终于想出了以下几点: ^garp$|^garp,|,garp,|,garp$ 这个正则expression式只是一个接一个地处理这4个例子。 (标签在列表的开头,在中间,在结尾,或作为列表的唯一元素。)最后一个正则expression式在某种程度上是丑陋在我眼里,只是为了母女的缘故,我想使它有点更优雅。 有没有办法如何在字符类的上下文中使用行/行尾字符(^和$)的开始? 编辑:好吧,希望更多的信息,所以这里是:我在一个Oracle SQL语句中使用这个。 这令人遗憾的是不允许任何环视声明,但是因为我只在有匹配或不匹配(而不是匹配)的情况下感兴趣,所以这并不影响我。 标签可以包含非字母字符,比如 – 或_ so \ bgarp \ b不起作用。 还有一个标签可以包含另一个标签,如SilentGhost所说的,所以/ garp / does not工作。
如何在Ruby中使用正则expression式匹配多个模式的string。 我想看看一个string是否包含在前缀数组中,这是行不通的,但我认为它至less展示了我正在尝试做什么。 # example: # prefixes.include?("Mrs. Kirsten Hess") prefixes.include?(name) # should return true / false prefixes = [ /Ms\.?/i, /Miss/i, /Mrs\.?/i, /Mr\.?/i, /Master/i, /Rev\.?/i, /Reverend/i, /Fr\.?/i, /Father/i, /Dr\.?/i, /Doctor/i, /Atty\.?/i, /Attorney/i, /Prof\.?/i, /Professor/i, /Hon\.?/i, /Honorable/i, /Pres\.?/i, /President/i, /Gov\.?/i, /Governor/i, /Coach/i, /Ofc\.?/i, /Officer/i, /Msgr\.?/i, /Monsignor/i, /Sr\.?/i, /Sister\.?/i, /Br\.?/i, /Brother/i, /Supt\.?/i, /Superintendent/i, /Rep\.?/i, /Representative/i, /Sen\.?/i, /Senator/i, /Amb\.?/i, […]
我目前正在使用这个正则expression式^[A-Z0-9 _]*$接受字母,数字,空格和下划线。 我需要修改它以至less要求string中的某个数字或字母。 任何帮助,将不胜感激! 这将用于validation我的网站的用户名。 我真的想支持尽可能多的字符,但只是想确保我防止代码注入和字符将显示所有用户罚款。 所以我明确地打开正则expression式validation的build议,将支持更广泛的字符集。
我有一个简单的评论系统,人们可以在纯文本字段中提交超链接。 当我将这些logging从数据库显示回网页时,我可以使用哪些RegExp将这些链接转换为HTMLtypes的锚链接? 我不希望algorithm与任何其他types的链接,只是HTTP和HTTPS。
使用WebClient类,我可以很容易地得到一个网站的标题: WebClient x = new WebClient(); string source = x.DownloadString(s); string title = Regex.Match(source, @"\<title\b[^>]*\>\s*(?<Title>[\s\S]*?)\</title\>", RegexOptions.IgnoreCase).Groups["Title"].Value; 我想存储url和页面标题。 但是,当按照以下链接进行操作时: http://tinyurl.com/dbysxp 我显然希望获得我redirect到的url。 质询 有没有办法使用WebClient类来做到这一点? 我将如何使用HttpResponse和HttpRequest ?
如何在执行Regex.Replace时使用命名捕捉? 我已经得到了这么多,它做我想要的,但不是我想要的方式: [TestCase("First Second", "Second First")] public void NumberedReplaceTest(string input, string expected) { Regex regex = new Regex("(?<firstMatch>First) (?<secondMatch>Second)"); Assert.IsTrue(regex.IsMatch(input)); string replace = regex.Replace(input, "$2 $1"); Assert.AreEqual(expected, replace); } 我想用命名的捕捉匹配这两个单词,然后在执行replace时使用(named)捕捉。
我parsing的string可以有任何数量的引用string(我正在parsing代码,并试图避免PLY)。 我想知道是否有一个子string被引用,并且我有子string索引。 我最初的想法是用refind所有的匹配,然后找出它们所代表的索引的范围。 似乎我应该使用正则expression式像\"[^\"]+\"|'[^']+' (我避免处理三重引用和此类string)当我使用findall ()我得到了匹配string的列表,这是有点不错,但我需要索引。 我的子string可能就像c一样简单,我需要弄清楚这个特定的c是否被实际引用。 提前致谢。
我需要使用Regex.Replace从string中删除所有的数字和符号。 示例input: 123- abcd33示例输出: abcd 提前致谢。
我遇到以下代码片段: pt->aa[!!(ts->flags & MASK)] = -val; 什么!! (双感叹号/感叹号/两个不是操作符)代表c? 不是(!!NULL) == NULL ?
我从数据库中检索字段包含string与HTML数据的数据。 我想要replace所有的双引号,以便它可以用于jQuery的 parseJSON 。 使用Java我试图取代报价使用.. details.replaceAll("\"","\\\""); //details.replaceAll("\"",""e;"); details.replaceAll("\"","""); 已经尝试过,但结果string不显示更改。 O'reily文章规定了文章 apachestringutils。 有没有其他的方法? 任何正则expression式或东西?