我必须匹配以“__”字符序列(两个下划线)为界的字符串组例如:hello__1the_re__mynameis__peer33__“1the_re”和“peer33”应该匹配我的问题是定义“一个不包含字符序列的字符串”/__((?!__).*)__/我试过了,但是没用...谢谢! 最佳答案 你很接近:/__((?!__).)*__/有效。星号必须在重复组之外,以便在每个位置执行前瞻,而不仅仅是在领先的__之后。因为这没有捕获正确的文本(我猜你想捕获双下划线之间的内容),你可能想要/__((?:(?!__).)*)__/
我整天都在考虑这个问题,但似乎无法找到一种内存高效且快速的方法。问题是:例如,我有这些字母:efjlnrrttuwx(12个字母)我在找这个词乌龟(6个字母)我如何用php找到全范围(12个单词)中所有可能的单词?(或者使用python,是否会更容易?)我尝试过的事情:使用排列:我使用排列算法使所有字符串成为可能,将它们放入数组(只有6个字符长)并执行in_array以检查它是否与我的数组中的某个单词匹配且有效单词(在这种情况下,包含TURTLE,但有时包含两个或三个单词)。这种计算会耗费大量内存和时间,尤其是要对6个以上的字符进行排列时。创建一个正则表达式(我不擅长这个)。我想创建一
我知道有很多问题要求帮助将URL转换为字符串中的可点击链接,但我还没有找到我正在寻找的东西。我希望能够匹配以下任何示例并将它们变成可点击的链接:http://www.domain.comhttps://www.domain.nethttp://subdomain.domain.orgwww.domain.com/foldersubdomain.domain.netsubdomain.domain.edu/folder/subfolderdomain.netdomain.com/folder我不想匹配random.stuff.separated.with.periods。编辑:请记住,这
我有一个快速的正则表达式问题,我想有些人可能会马上就知道。如果我只想允许大写/小写字母数字、空格、标点符号和引号,那么用于CakePHP验证的正则表达式是什么?这就是我所拥有的,但它已关闭:'rule'=>array('custom','/[a-z0-9\x20\x21\x2E\x3A\x3B\x3F\x2C\x27\x22]{0,600}/i'),据我所知,a-z0-9包含字母数字,但\xXX不应该包含带有ASCII十六进制代码的标点符号吗?然后{0,600]表示长度为0-600个字符,i表示上下。我错过了什么?例如:valid:这是一个“有效文本”,其中包含'和标点符号!无效:这是
我需要一个正则表达式来确保一个字符串至少包含3个不同的字符(任何类型)。例如,aqaqaq无效,因为它仅由2个不同的字符组成。aqwaqa或aq3aqa或aq!aqa是有效的。这在正则表达式中可能吗?语言:Javascript/PHP谢谢 最佳答案 您可以使用这个包含否定前瞻的正则表达式:/(.).*(?!\1)(.).*(?!\1)(?!\2)(.)/例子:>regex=/(.).*(?!\1)(.).*(?!\1)(?!\2)(.)/>regex.exec('abab!aba')["abab!ab","a","!","b"]>r
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:CapitalizationofPersonnamesinprogramming我注意到在我的网站上注册的人非常懒惰,他们甚至懒得将自己的名字大写。我的网站是一个面向商业的网站,所以这里没有“self表达自由”的论点。名字大写非常简单,因为我想不出一个西方名字不以大写字母开头的例子。我可能是错的。但是将姓氏大写变得更加困难,像这样的名字O'BrienO´FlahertydeWitMcKenzieAuditoredaFirenzedelosRemediosdeEscaladaVirta-Jokela在大约95%
我有以下带有zend框架的代码:$descuentoElement->addValidator(newZend_Validate_Regex(array('pattern'=>'/[0-9]+(.[0-9]+)?/')));我想验证双类型输入,例如1.2或4...不是“4sd”,而是这种模式不能正常工作...它允许写入“4s”...是否有任何答案或正确的正则表达式它的模式......我想要一个建议......谢谢...... 最佳答案 如果您要匹配整行,@Joey的答案将有效,但您需要使用类似的东西/[^0-9][0-9]+(\.[
我需要用preg_match检查输入,它必须是这种格式:xxx.xxx.xxxblock的数量可以变化......这些都是有效输入的例子:00100a.00a0fg.001aaa.aaa.001001.001.002.001.001.001好吧,我可能会写一个像这样的正则表达式:^([\da-z]{3}\.?)+$但是这里出现了期间量词的问题。我的意思是如果我使用'?'匹配0次或1次,即使在某处跳过点,它也会匹配,例如:000.001.0010az001然后,如果我用{1}匹配一次,它什么也匹配不到,因为最后一个block没有点。所以想不出来怎么想...求指教
下面的代码显示了字符串的第一段,但我希望它显示前三段:preg_match("/(.*)/",$paragraphs,$matches);echo$matches[0];我是正则表达式的新手,所以我一直在努力解决这个问题。有什么想法吗?感谢您的帮助。 最佳答案 你可以使用preg_match_all:preg_match_all("/(.*)/",$paragraphs,$matches);echo$matches[0][0];echo$matches[0][1];echo$matches[0][2];当您使用preg_match_
我想制作一个函数来检测/验证一个字符串至少有2个单词,并且每个单词至少有2个字母(除了这两个字母,它可以包含任何其他字符{withoutnumbers},但我不关心哪个和多少)。现在,我不确定我是否应该为此使用正则表达式或者我可以用其他方式做到这一点。如果我需要为它制作正则表达式,我也不知道该怎么做,因为我需要检查所有可用的字母。这是我现在得到的正则表达式[A-Za-z]{2,}(\s[A-Za-z]{2,})验证2个单词和2个字母至少在每个单词中。编辑:重新考虑后,我决定支持大多数语言,因为kr-jp-cn语言与其他语言的工作方式不同。我的主要规则不会让kr-jp-cn字母算作字母,