正则表达式匹配数字后的文本

时间:2014-07-13 13:35:48

标签: regex match

我正在寻找匹配以下内容的方法:

测试字符串:

场景1:"验证:1:错误的地址。你想继续吗?" (不含引号)
场景2:"验证:1:付款方式错误2:信用卡号无效。" (不含引号)
场景3:"验证:1:付款类型错误2:信用卡号码无效.3:无效的到期日期。" (不含引号)

在第一个数字之前总会有Validate:,之后是带有可能的特殊字符的文本,包括"'()#,。如果在上一条消息的最后一个字符之后直接添加了多个问题。

提取

场景1:"地址错误。你想继续吗?"
场景2:"付款方式错误","信用卡号无效。"
场景3:"付款类型错误","信用卡号码无效。","无效的到期日期。"


在" ##:"之间或之后或多或少的任何事情,我想提取。我不会总是知道包含什么。我使用的是Coldfusion,它的核心是Java。但我可以在大多数语言(php,CF,c#,Java等)正则表达式之间进行转换。

我考虑过做这样的事情:

(\d+)(.)(\s+)

找到提取文本的位置,但想知道是否有人能想出一个更优雅的解决方案我会用它。

1 个答案:

答案 0 :(得分:-1)

如果您使用的是sed,则会执行以下操作:

sed 's/[^0-9]*[0-9]: \(.*\)/\1/' | sed 's/[0-9]//g'