我想从字符串中提取可能包含一些特殊字符的数字(让我们说" + - ()")但不是任何其他字符,即:
"+123 (456) 7-8" -> "1, 2, 3, 4, 5, 6, 7, 8" is extracted
"123a45" -> pattern matching fails, nothing is extracted
"1234 B" -> pattern matching fails, nothing is extracted
答案 0 :(得分:1)
你想要的是这样的gnu sed:
sed -r -n '/^[-+0-9() ]+$/ {s/[^0-9]//g; s/([0-9])/\1, /g; p;}' file
^[-+0-9() ]+$
与您的行匹配,这应该适用于其他re工具{ ... }
内的部分会创建您的格式化输出,您需要将其用于您的工具答案 1 :(得分:0)
免费代码:
.*[^\d^+^(^)^\-^\s]+.*(?:\d)|(?:\d)(?=.*[^\d^+^(^)^\-^\s]+.*)|(\d)
说明:
[^\d^+^(^)^\-^\s]
匹配除“+ - ()”和数字