在正则expression式中是否可以跳过捕获组中的几个字符? 我正在使用.NET正则expression式,但这不应该。 基本上,我正在寻找的是: [随机文本] AB-123 [随机文本] 我需要捕获“AB123”,没有连字符。 我知道AB是2或3个大写字母,123是2或3个数字,但这并不困难。 困难的部分(至less对我来说)是跳过连字符。 我想我可以分别捕获这两个,然后将它们连接在代码中,但我希望我有一个更优雅的,正则expression式的解决scheme。 有什么build议么?
什么是正则expression式匹配xxx[any ascii char here, spaces included]+xxx ? 我正在尝试xxx[(\w)(\W)(\s)]+xxx但它似乎不工作。
假设我有string "12345" 如果我.match(/\d{3}/g) ,我只得到一个匹配, "123" 。 为什么我不能得到[ "123", "234", "345" ] ?
我需要确定给定的string是否可以在SQL语句中被解释为数字(整数或浮点数)。 如下所示: SELECT AVG(CASE WHEN x ~ '^[0-9]*.?[0-9]*$' THEN x::float ELSE NULL END) FROM test 我发现Postgres的模式匹配可以用于这个。 所以我改编了这个地方给出的语句来结合浮点数。 这是我的代码: WITH test(x) AS ( VALUES (''), ('.'), ('.0'), ('0.'), ('0'), ('1'), ('123'), ('123.456'), ('abc'), ('1..2'), ('1.2.3.4')) SELECT x , x ~ '^[0-9]*.?[0-9]*$' AS isnumeric FROM test; 输出: x | isnumeric ———+———– | t . | t .0 […]
我正在寻找一个简单的正则expression式来匹配相同的字符重复超过10次左右。 所以举个例子,如果我有一个水平线的文件: ================================================= 它会匹配=字符的行,因为它重复了10次以上。 请注意 ,我希望这可以用于任何angular色。
我需要一个正则expression式的条件: 最less6个字符,最多50个字符 必须包含1个字母 必须包含1个数字 可能包含特殊字符,例如!@#$%^&*()_ + 目前我有模式: (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{6,50})$ 然而,它不允许特殊字符,有没有人有一个很好的正则expression式? 谢谢
我一直认为Java的正则expression式API(以及许多其他语言)中的隐式断言必须有一个明显的长度。 所以,STAR和PLUS量词不允许放在后面 。 优秀的在线资源regular-expressions.info似乎证实了我的一些假设: Java让事情更进一步,允许有限的重复,你仍然不能使用星号或者加号,但是你可以使用问号和大括号来指定最大参数,Java认识到有限重复可以改写为不同长度固定长度的string,不幸的是,JDK 1.4和1.5在向后看内部使用交替时会有一些错误,这些错误在JDK 1.6中得到修复[…] – http://www.regular-expressions.info/lookaround.html 只要外观内部字符的总长度小于或等于Integer.MAX_VALUE,就可以使用大括号。 所以这些正则expression式是有效的: "(?<=a{0," +(Integer.MAX_VALUE) + "})B" "(?<=Ca{0," +(Integer.MAX_VALUE-1) + "})B" "(?<=CCa{0," +(Integer.MAX_VALUE-2) + "})B" 但是这些不是: "(?<=Ca{0," +(Integer.MAX_VALUE) +"})B" "(?<=CCa{0," +(Integer.MAX_VALUE-1) +"})B" 不过,我不明白以下几点: 当我在外观内部使用*和+量词运行testing时,一切正常(请参见输出testing1和testing2 )。 但是,当我在testing1和testing2的后视图开始处添加单个字符时,它会中断(请参见输出testing3 )。 从testing3中得到的贪婪*不会产生任何影响,它仍然会中断(见testing4 )。 以下是testing工具: public class Main { private static String testFind(String regex, String input) { try { boolean returned = […]
我想看看,如果在0和1的4个字符的string中出现"001"或"100"或"000" 。 例如,一个4个字符的string可以像"1100"或"0010"或"1001"或"1111" 。 如何用单个命令匹配string中的许多string? 我知道grep可以用于模式匹配,但是使用grep,我一次只能检查一个string。 我想知道是否可以使用多个string与其他命令或使用grep本身。
考虑以下程序: // http://ideone.com/4I0dT #include <limits> #include <iostream> int main() { int max = std::numeric_limits<int>::max(); unsigned int one = 1; unsigned int result = max + one; std::cout << result; } 和 // http://ideone.com/UBuFZ #include <limits> #include <iostream> int main() { unsigned int us = 42; int neg = -43; int result = us + neg; […]
有一个PHP函数,可以逃避正则expression式模式之前,他们被应用? 我正在寻找的东西沿C# Regex.Escape()函数的行。