我需要一个正则表达式,在下面找到以粗体显示的数字:
20(L.B.D.D. hello 312312 )马铃薯1651(98)
20(L.B.D.D。你好 312312 兔子)马铃薯1651(98)
20( 312312 )马铃薯1651(98)
((\ d +))找到数字98
当括号中有其他字符时,我不知道该怎么办
答案 0 :(得分:46)
这仅匹配第一个捕获组中的 312312 :
^.*?\([^\d]*(\d+)[^\d]*\).*$
Regexplanation:
^ # Match the start of the line
.*? # Non-greedy match anything
\( # Upto the first opening bracket (escaped)
[^\d]* # Match anything not a digit (zero or more)
(\d+) # Match a digit string (one or more)
[^\d]* # Match anything not a digit (zero or more)
\) # Match closing bracket
.* # Match the rest of the line
$ # Match the end of the line
见here。
答案 1 :(得分:1)
以下正则表达式应该这样做
@"\([^\d]*(\d+)[^\d]*\)"
括号表示捕获组,\(
是转义括号,表示输入字符串中的实际括号。
作为注释:取决于你使用什么语言表达你的正则表达式,你可能必须逃脱你的逃脱字符\
,所以要小心。
我要小心这一点,正则表达式的教科书限制之一是它无法正确识别带括号的文本。