文字是:“R1和R24或R456'
我想写一个可以找到R的模式和跟随它的数字(只有数字)。 所以比赛将是:R1,R24,R456。
如何编写适当的正则表达式?
答案 0 :(得分:2)
像
这样的东西\bR\d+
\b
是单词边界的锚点,这意味着R
\d
是一个数字
+
一个或多个
如果你想替换你可以这样做的数字(如果你的语言支持lookbehinds)
(?<=\bR)\d+
要获得正确的语法,您需要告诉我们您的语言。
答案 1 :(得分:1)
\ d +代表“d代表
正如其他人所指出的那样,如果你想避免匹配像“thumb2”这样的单词的结尾,你可以使用\ b表示“单词的开头”
如何应用正则表达式的确切语法因语言而异:在Perl中,您键入的内容与上面的/.../语法非常相似。在其他语言中,您可以使用传递给函数的字符串“R \ d +”。在某些情况下,你需要在里面添加斜线一个字符串。
您可以在线测试,例如:http://www.fileformat.info/tool/regex.htm
答案 2 :(得分:1)
正则表达式为\bR\d+
。要同时捕获您可以使用的号码\bR(\d+)
。
答案 3 :(得分:0)
您的问题的主题是“替换”,但我无法找到有关您的问题可能替换的任何要点。
正则表达式模式/R[0-9]+/
应该可以在“R1 AND R24 OR R456”中找到“R1”,“R24”和“R456”。
要提取相应“R”后面的数字,您可以在正则表达式模式中添加一个组:/R([0-9]+)/
。然后,您可以将测试字符串与正则表达式模式“匹配”,并为每个匹配提取组1:
Target String: R1 AND R24 OR R456
Regex Pattern: R([0-9]+)
"find next"; group(0): R1; group(1): 1
"find next"; group(0): R24; group(1): 24
"find next"; group(0): R456; group(1): 456
"find next"; null
您使用的是哪种编程语言?然后我们可以提供一个更加坚固的例子。