您好我正在尝试获取一些值,跳过该行的其余值,然后获取下一行,但前提是它是某种模式。所以我的数据就像
($ Amount)Tj 1 0 0 1 18.4 369.8 Tm
(12/30)Tj 1 0 0 1 84.7 369.8 Tm
(CLUBZONE.COM TICKETS USA VANCOUVER BC)Tj 1 0 0 1 449.5 369.8 Tm
(-165.00)Tj 1 0 0 1 18.4 356.8 Tm
(01/05)Tj 1 0 0 1 84.7 356.8 Tm
我想抓住(12/30)(CLUBZONE.COM TICKETS USA VANCOUVER BC)(-165.00)
我应该匹配日期,然后是换行符后的所有内容,下一行的下一步是什么?我现在想要省略paranthesis之外的东西我只是有这个
[\(][0-1][1-9]/[1-3][0-9][\)]
*请注意,数据在每个Tm
答案 0 :(得分:1)
我使用点匹配换行符在RerexBuddy中为PCRE构建了这个正则表达式:
^.*?(\(\d{1,2}/\d{1,2}\)).*?(\(.*?\)).*?(\(-?\d+\.\d{2}\)).*$
然后更换是:
$1$2$3
答案 1 :(得分:1)
(?<value>\(.*\))
符合您的示例。以下是C#
private IList<string> GetValues(string input)
{
const string pattern = @"(?<value>\(.*\))";
var regex = new Regex(pattern);
var values = new List<string>();
foreach (Match match in regex.Matches(input))
{
values.Add(match.Groups["value"].Value.ToString());
}
return values;
}
答案 2 :(得分:0)
(\([0-1][1-9]/[1-3][0-9]\))(?:Tj[\d\s\.]*Tm)\s*(\(.*\))(?:Tj[\d\s\.]*Tm)\s*(\([-\d\.]*\))
快速和脏,仅在Visual REGEXP中测试过,但是在匹配1到3中,这应该得到你想要的。