0

我有一个文本文件,其中所有的问题和答案都在那里,就像下面的文字

question l : Regular expression problem in C#  

answer 1 :   regular expression answer 1

question  2 : Regular expression problem in php 

answer 2 :   regular expression answer 2

ETC...

我做了这个像下面

<question> question l : Regular expression problem in C# </question> 

<answer> answer 1 : regular expression answer 1</answer>

<--page-->

<question>question 2 : Regular expression problem in php </question>

<answer>answer 2 : regular expression answer 1</answer>

<--page-->

这样我就可以创建一个数组和 foreach 循环,我可以将它插入到下表中的数据库中

question_id,问题答案

1 C#正则表达式中的正则表达式问题解答1

2 php正则表达式中的正则表达式问题解答2

任何人都可以帮助我构建正则表达式,我构建了这个,但它在答案文本中包含问题文本

preg_match_all("#^(?<!<question>).*<question>.*?</question>(?!.*<question>)#",$temp_data,$question);
preg_match_all("#^(?<!<answer>).*<answer>.*?</answer>(?!.*<answer>)#",$temp_data,$answer);
4

1 回答 1

1

我不确定我可以完全遵循,但我认为你想要这个

preg_match_all("#(?<=<question>).*?(?=</question>)#",$temp_data,$question);
preg_match_all("#(?<=<answer>).*?(?=</answer>)#",$temp_data,$answer);

第一个将匹配<question>标签和下一个</question>标签之间的任何内容,但不匹配标签本身。在 Regexr 上查看

第二个将匹配<answer>标签和下一个</answer>标签之间的任何内容,但不匹配标签本身。

于 2012-05-16T11:50:42.763 回答